Javascript:使用 "if...else" 语句触发 "for" 循环无效
Javascript: Triggering "for" loop using "if...else" statements not working
我正在尝试制作一个简单的脚本,它会在我勾选复选框时自动阻止文件中的输入框。
为此,我试图通过每次单击复选框时触发循环来 add/remove "disabled" 属性。看起来像这样:
function locker() {
var boxes = document.querySelectorAll("input[type='text']");
var x = getElementById("lock")
for (i = 0; i < inputBoxes.length; i++) {
if (x.checked == true) {
boxes[i].disabled = true;
} else {
boxes[i].disabled = false;
}
}
}
<input type="checkbox" id="lock" onClick="locker()">
<input type="text"></input>
<input type="text"></input>
<input type="text"></input>
但是,我似乎无法让它工作。我没有太多编码经验,我觉得我犯了一个非常基本的错误,但到目前为止我找不到解决这个问题的方法......我该如何解决这个问题?是否有任何其他解决方法来获得相同的结果?
提前致谢
您需要使用 document.getElementById("lock")
而不是 getElementById("lock")
并为您的变量使用正确的变量名称。您使用了 inputBoxes
和 boxes
,而您打算使用相同的变量。
function locker() {
var inputBoxes = document.querySelectorAll("input[type='text']");
var x = document.getElementById("lock")
for (i = 0; i < inputBoxes.length; i++) {
if (x.checked == true) {
inputBoxes[i].disabled = true;
} else {
inputBoxes[i].disabled = false;
}
}
}
<input type="checkbox" id="lock" onClick="locker()">
<input type="text"></input>
<input type="text"></input>
<input type="text"></input>
我正在尝试制作一个简单的脚本,它会在我勾选复选框时自动阻止文件中的输入框。 为此,我试图通过每次单击复选框时触发循环来 add/remove "disabled" 属性。看起来像这样:
function locker() {
var boxes = document.querySelectorAll("input[type='text']");
var x = getElementById("lock")
for (i = 0; i < inputBoxes.length; i++) {
if (x.checked == true) {
boxes[i].disabled = true;
} else {
boxes[i].disabled = false;
}
}
}
<input type="checkbox" id="lock" onClick="locker()">
<input type="text"></input>
<input type="text"></input>
<input type="text"></input>
但是,我似乎无法让它工作。我没有太多编码经验,我觉得我犯了一个非常基本的错误,但到目前为止我找不到解决这个问题的方法......我该如何解决这个问题?是否有任何其他解决方法来获得相同的结果?
提前致谢
您需要使用 document.getElementById("lock")
而不是 getElementById("lock")
并为您的变量使用正确的变量名称。您使用了 inputBoxes
和 boxes
,而您打算使用相同的变量。
function locker() {
var inputBoxes = document.querySelectorAll("input[type='text']");
var x = document.getElementById("lock")
for (i = 0; i < inputBoxes.length; i++) {
if (x.checked == true) {
inputBoxes[i].disabled = true;
} else {
inputBoxes[i].disabled = false;
}
}
}
<input type="checkbox" id="lock" onClick="locker()">
<input type="text"></input>
<input type="text"></input>
<input type="text"></input>