5

私はすべてを検索しましたが、まだ修正できません。助けてください:

ここに私のjsコードがあります:

<script type="text/javascript">
    $(document).ready(function() {
        $("#email_acc").click(function() {
            if ( $(this).is(":checked") ) {
                $("#email_group").attr("enabled","enabled");
            }
        });  

        $("#system_acc").click(function() {
            if ( $(this).is(":checked") ) {
                $("#system_group").attr("enabled","enabled");
            }
        }); 
    });
</script>

以下は私のhtmlコードを示しています:

<input type="checkbox" name="email_acc" id="email_acc" />Email Account
<input type="checkbox" name="sys_acc" id="sys_acc" />System Account

<input type="radio" name="radio_email" value="create" class="email_group" id="radio_email_0" disabled="disabled"/>New
<input type="radio" name="radio_email" value="change" id="radio_email_1" disabled="disabled"/>Change
<input type="radio" name="radio_email" value="terminate" id="radio_email_2" disabled="disabled"\ />Termination

<input type="radio" name="radio_system" value="create" class="system_group" id="radio_system_0" disabled="disabled"/>New
<input type="radio" name="radio_system" value="change" id="radio_system_1" disabled="disabled" />Change
<input type="radio" name="radio_system" value="terminate" id="radio_system_2" disabled="disabled" />Termination

何が問題なのかわかりません。うまくいきません。

4

4 に答える 4

4
$(document).ready(function() 
{

    $("#email_acc").click(function()
    { 
        if ( $(this).is(":checked") ) 
        {  
            $("input[name='radio_email']").removeAttr("disabled");
           //      ^----------------enable all the checkbox with common name
        }
    });  

    $("#sys_acc").click(function()
   //     ^---------corrected id
    {
        if ( $(this).is(":checked") )
        {   $("input[name='radio_system']").removeAttr("disabled");
       //         ^----------------enable all the checkbox with common name
        }
    }); 
});​

デモ

デモ 2

OP からの新しい要件に合わせてコードを更新し、nnnnnn のおかげでコードをクリーンアップしました

更新された デモ 3

于 2012-11-22T04:19:19.563 に答える
0

"enabled"属性またはプロパティはありません。問題の要素を有効にするために"disabled"設定できる属性またはプロパティのみです。false(「属性」はソースHTMLにありますが、「プロパティ」に動的な変更が加えられ、無効にするかどうかをブール値に設定します。)

古いバージョンのjQueryを使用していない限り、このプロパティを更新するには.prop()メソッドを使用する必要があります。ラジオボタンのグループ全体を有効にするには、属性ですべてを選択する必要がありnameます(または、共通のボタンを指定して選択する必要がclassあります)。

$("#email_acc").click(function() { 
    if ( this.checked ) {  
        $('input[name="radio_email"]').prop('disabled', false);
    }
});

// and the same for the other checkbox and group.

2番目のチェックボックスにはid="sys_acc"がありますが、JSはで選択しようとしていることに注意してください"#system_acc"-それらが一致することを確認する必要があります。

チェックボックスがオフになっている場合にグループを再度無効にする必要がある場合は、次の操作を実行して、ifステートメントを削除し、disabledプロパティをプロパティの逆に設定しcheckedます。

$('#email_acc').click(function() { 
    $('input[name="radio_email"]').prop('disabled', !this.checked);
});

// and again the same idea for the other checkbox and group.

デモ: http: //jsfiddle.net/UqTB3/

this.checkedどちらの場合も、次の代わりに使用したことに注意してください。前者の方が読みやすく、jQueryオブジェクトを作成してを使用するよりも$(this).is(":checked")DOM要素のプロパティを直接確認する方が効率的です。しかし、すべてにjQueryを使用することに本当に熱心な場合は、適切な置換を行うことができます。checked.is(":checked")

于 2012-11-22T04:37:49.937 に答える
0
$("#email_acc").click(function()
    {
        if ( $(this).is(":checked") )
        {
            $("#email_group").attr("disabled","false");
                  or
            $("#email_group").attr("disabled",false);
        }
    });  
于 2012-11-22T04:09:07.613 に答える