27

ラジオボタンリストの入力項目にCSSクラスを設定する方法はありますか?これらのフォーム値をjQueryのクラスごとに参照したいと思います。

ListItemsにクラスが設定されたASP.NETRadioButtonListを指定します。

 <asp:RadioButtonList ID="RadioButtonList" runat="server">
      <asp:ListItem class="myClass" Text="Yes" Value="1" />
      <asp:ListItem class="myClass" Text="No" Value="0" />
 </asp:RadioButtonList>

次のようにレンダリングされます:

 <span id="RadioButtonList" class="radioButtonListField myClass">
     <span class="myClass">
          <input id="RadioButtonList_0" type="radio" value="1" 
               name="RadioButtonList"/>
          <label for="RadioButtonList_0">Yes</label>
     </span>
     <span class="myClass">
          <input id="RadioButtonList_1" type="radio" value="0" 
               name="RadioButtonList"/>
          <label for="RadioButtonList_1">No</label>
     </span>
 </span>

残念ながら、「myClass」クラスは、それ自体<span>ではなく、ラジオボタンアイテムを含むに追加され<input>ます。代わりに、どうすれば次のように表示できますか。

 <span id="RadioButtonList" class="radioButtonListField myClass">
     <span>
          <input id="RadioButtonList_0" class="myClass" type="radio" value="1" 
               name="RadioButtonList"/>
          <label for="RadioButtonList_0">Yes</label>
     </span>
     <span>
          <input id="RadioButtonList_1" class="myClass" type="radio" value="0" 
               name="RadioButtonList"/>
          <label for="RadioButtonList_1">No</label>
     </span>
 </span>

(これは、動的にバインドされたRadioButtonListsにクラスを追加する問題にも入りません。)

4

5 に答える 5

14

はい、RadioButtonListは恐ろしいHTMLをレンダリングします。

とにかく、jQueryからそれらを取得するのはまだ簡単です。

試す

$('span.myclass input:radio')

上記は、クラス'myclass'のスパン内のすべてのラジオボタンを取得します。

于 2009-07-01T19:48:18.873 に答える
9

別の方法として、CSSクラスを変更してサーバーコントロールのレンダリングを確認することもできます。

したがって、CSSでは次の代わりに:

.myClass { ... }

これを使用します:

.myClass input { ... }

クラス属性を(クラスまたはCSSClassを介して)宣言的に設定できるかどうかはわかりません。ただし、上記は回避策を提供する必要があります。

于 2009-07-01T19:49:11.510 に答える
3

テストされていません

$('.myclass input:radio').each(function() {
        this.css({'style-name':'style-value'})
)};

リストがレンダリングされたら、上記のステートメントを使用してcssクライアント側を操作できる可能性があります。

于 2009-07-01T20:01:15.230 に答える
2

.NETを使用すると、RowBindingイベントへのイベントハンドラーを作成できます。これにより、リスト内の各アイテム内の個々のコントロールにアクセスできるようになります。RadioButtonコントロールをプルすると、プログラムでCssClassを設定して、RadioButtonレベルでクラスを適用できます。

jqueryを使用して、myClassが適用されているラジオボタンコントロールを見つけて、それに別のクラスを適用することもできます。

第3に、MyClassの定義を変更して、MyClassが適用されている要素の下の入力要素にのみ適用されるように指定することもできます。

于 2009-07-01T19:50:30.913 に答える
1

desigeekの応答はかなり良いです。

これをラジオボタンで機能させるには、document.ready()でこれを実行する必要がありました。

$('#<%=radRisksMarginTrading.ClientID  %>_0').addClass("validate[required]");
$('#<%=radRisksMarginTrading.ClientID  %>_1').addClass("validate[required]");

ループすることでそれを行うためのはるかに良い方法があると確信していますが、5つのラジオボタンリストをすばやく修正する必要があります。

于 2009-09-29T14:41:06.267 に答える