我的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;
}
}
当我选中复选框时,文本框将启用,但是当我取消选中时,该文本框仍然启用,我想在取消选中后禁用此文本框。我该如何解决这个问题?
答案 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;
}
...因为作业的结果是指定的值。