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
$("#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 回答
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.

请注意,您的第二个复选框有一个,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而不是$(this).is(":checked"):我发现前者更易于阅读,并且checked直接检查 DOM 元素的属性比创建 jQuery 对象并使用.is(":checked"). 但是,如果您真的热衷于使用 jQuery 来处理所有内容,您可以进行适当的替换。

于 2012-11-22T04:37:49.937 回答
0
  1. 在输入 html 中添加名称
  2. 名称应该相同

    <script type="text/javascript">
       document.getElementById('cek3').onchange = function () {
           document.getElementById('fasilitas_kost1').disabled = !this.checked;
           document.getElementById('fasilitas_kost2').disabled = !this.checked;
           document.getElementById('fasilitas_kost3').disabled = !this.checked;
           document.getElementById('fasilitas_kost4').disabled = !this.checked;
           document.getElementById('fasilitas_kost5').disabled = !this.checked;
           document.getElementById('fasilitas_kost6').disabled = !this.checked;
           document.getElementById('fasilitas_kost7').disabled = !this.checked;
       };
    </script>
    
于 2017-03-20T04:46:04.567 回答