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

Javascript Enabled input type when checkbox checked and disable when checkbox unchecked

本文关键字:复选框 输入 启用 Javascript 类型      更新时间:2023-09-26

我的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;
        }
        }

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

=赋值(设置变量的值),因此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;
}

因为赋值的结果就是赋值的值。

function chkBox(obj) {
    console.log(obj);
    $(obj).parents("tr").find("input[type='number']").prop('disabled', !$(obj).is(":checked"));
    $(obj).parents("tr").find("input[type='hidden']").prop('disabled', !$(obj).is(":checked"));
}

调用函数并传递它。

onclick="chkBox(this)"