2

2つのラジオボタンを作成しました

<input type="radio" name="ApprovalGroup" runat="server" id="ApprovedOnly" value="true" />Approved
<input type="radio" name="ApprovalGroup" runat="server" id="UnapprovedOnly" value="false" />Unapproved

そしてjsからそれらにアクセスできましたが、コードビハインドのラジオボタンにアクセスできるように$("input[name=ApprovalGroup]:checked").val()追加する必要がありました。runat="server"

私が抱えている問題は、コンテンツのプレースホルダーのためにラジオボタンの名前が変更されていることです。私は使用してClientIDMode="Static"いますが、名前ではなくID値のみを保護します。ラジオボタンは次のようにレンダリングされます

<input value="true" name="ctl00$cphContent$ApprovalGroup" type="radio" id="ApprovedOnly" />Approved
<input value="false" name="ctl00$cphContent$ApprovalGroup" type="radio" id="UnapprovedOnly" />Unapproved

名前の変更を防ぐことはできますか?

4

3 に答える 3

4

$=値が指定された部分文字列で終わる属性を選択するセレクターを使用できます。

$("input[name$=ApprovalGroup]:checked")
于 2013-03-18T14:57:13.843 に答える
3

.NET は独自の目的で名前を必要としますが、独自の CSS クラス名を使用することを止めるものではありません。

そうすれば使えます$('.classname').val()。フィールドに個別のクラス名を使用したり、それらを共有してグループを作成したりできます。

于 2013-03-18T14:57:15.147 に答える
1
$("input[name*=ApprovalGroup]:checked")

は良い解決策ですが、これらの単語を含む別の入力がある場合、競合が発生する可能性があります。したがって、より安全な解決策は、独自の属性を使用することです。そのような;

 <input type="radio" name="ApprovalGroup" data-group="group1" runat="server" id="ApprovedOnly" value="true" />Approved
 <input type="radio" name="ApprovalGroup" data-group="group1" runat="server" id="UnapprovedOnly" value="false" />Unapproved

次に、以下のフィルターを使用します。

$("input[data-group='group1']:checked")
于 2013-03-18T15:08:26.163 に答える