omachizura

仕事メモ、役に立ったスキルをまとめています。


repeaterで出力したラジオボタンを1つのみ選択する方法

repeaterの中にラジオボタンを定義して出力すると、下記のように複数選択できてしまいます。

性別(両方選択できてしまいます)男:   女:

原因はrepeaterで出力する際にIDとNAME属性が変わってしまうためです。詳しくは repeaterで表示・編集・登録処理 その2 で詳しく扱っています。

1つだけ選択できるようにするには、サーバ処理で変更されてしまったNAME属性を同じにする必要があります。なのでクライアント側のロードイベントでラジオボタンのNAME属性を変更します。

//jQuery
$(document).ready(function () {
  $("#repeater1 input:radio").attr("name", "cap");
});

jQueryを使わない場合は、少し複雑になります。 repeaterで出力したコントロールにjavascriptでアクセスする でrepeaterで動的に出力したコントロールにアクセスする方法を紹介しています。