1

チェックされているときに、選択したラジオボタンのテキストのテキストの色を変更しようとしています(3つのグループ)。うまくいきません。複数のバリエーションを試しましたが、これはうまくいくはずです

$(document).ready(function() {
    if (
    $('.radioPanel [input:radio]').is(":checked")) {
        $(this).css('color', '#008000');
    }
});

aspx コードは次のとおりです。外部コードはjqueryの変更に影響を与えていますか?

<fieldset class="registerradio">
                    <legend>Select a Category</legend>
                  <asp:Panel ID="radiobtnPanel" runat="server" CssClass="radioPanel">
                    <asp:RadioButton ID="radioUserEmployee" runat="server" GroupName="radioCreateUsers" Text="Employee" TextAlign="Left"  />
                    <asp:RadioButton ID="radioUserDistributor" runat="server" GroupName="radioCreateUsers" Text="Distributor" TextAlign="Left"/>
                    <asp:RadioButton ID="radioUserCustomer" runat="server" GroupName="radioCreateUsers" Text="Existing Customer" TextAlign="Left"/>
                    <%--<asp:RadioButton ID="radioUserOther" runat="server" GroupName="radioCreateUsers" Text="Other" TextAlign="Left"/>--%>
                  </asp:Panel>
 </fieldset>

これがフィドルです。 http://jsfiddle.net/6yVL3/

4

3 に答える 3

6

JavaScript にエラーがありました:

  • jsFiddle で jQuery の代わりに mootools を設定します
  • セレクターが間違っていました。こちら[attr=value]のリストを確認してください
  • あなたの JavaScript は静的でした。これは、ラジオがチェックされたかどうかを 1 回だけチェックすることを意味し、変更があった場合は何も起こりません。
  • ラベルではなくラジオに色を設定します

コードは次のとおりです。

$(function() {
    // When the value of the radio change
    $('.radioPanel [type="radio"]').on('change', function() {
        $(this)
        .prev().css('color', 'red')
        .siblings().css('color', 'black');
    });
});​

そして、これがライブの例です。

于 2012-08-30T11:43:45.203 に答える
3

これを試して:

$('.radioPanel input[type="radio"]').change(function() {
    if ($(this).is(':checked')) 
        $(this).prev('label').css('color', '#008000');
});​

ちなみに、前にチェックしたラベルの色を削除する必要があります。このような:

$('.radioPanel input[type="radio"]').change(function() {
    $('.radioPanel label').css('color', 'black');
    //This in result removes the color of the label checked previously, in fact it just resets all the color of labels to black
    if ($(this).is(':checked'))
       $(this).prev('label').css('color', 'green');
});

デモ

于 2012-08-30T11:43:08.673 に答える
1

あなたはこのように試すことができます

$(document).ready(function() {

 $(".radioPanel :input:checked").prev('label').css('color', '#008000');

});​
于 2012-08-30T11:50:22.650 に答える