Javascript在选中复选框时启用输入类型,在未选中复选框时禁用

时间:2016-04-16 06:32:26

标签: javascript checkbox

我的javascript在这里:

function enable(id) {
        var i = (document.getElementById('haha').checked);

        if(i= true) {
        document.getElementById("nama_"+id).disabled= false;
        document.getElementById("ket_"+id).disabled= false;
        }else{
            document.getElementById("nama_"+id).disabled= true;
        document.getElementById("ket_"+id).disabled= true;
        }
        }

当我选中复选框时,文本框将启用,但是当我取消选中时,该文本框仍然启用,我想在取消选中后禁用此文本框。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

=作业(设置变量的值),因此if (i = true) i设置为true然后分支到if块。要进行比较,通常你会使用=====,但是使用布尔值,这是绝对必要的;只需直接检查值:

if (i) {
    // Enable it
} else {
    // Disable it
}

的情况下,您可以直接使用i

document.getElementById("nama_"+id).disabled = !i;
document.getElementById("ket_"+id).disabled = !i;

()检查周围也不需要checked

我可能会这样做:

function enable(id) {
    var disabled = !document.getElementById('haha').checked;
    document.getElementById("nama_"+id).disabled = disabled;
    document.getElementById("ket_"+id).disabled = disabled;
}

在那里,我得到复选框的值并将其反转,然后将其用作其他输入上的disabled标志。我这样做是因为它很好且易于调试,当我逐步执行代码时,我可以在调试器中轻松看到disabled值。

有些人真的非常喜欢用一种表达方式做事。 (我认为这非常被高估了。)他们可能会这样做:

function enable(id) {
    document.getElementById("nama_"+id).disabled =
        document.getElementById("ket_"+id).disabled =
            !document.getElementById('haha').checked;
}

...因为作业的结果是指定的值。