单击 chceckbox 时切换启用和禁用 div 中的所有输入
Toggle enabled&disabled all inputs in div when chceckbox clicked
我试图删除单击复选框时在每个输入处禁用的属性。我能够打开这些输入,但在关闭它们时遇到问题。
<div class='single-service-<?php echo $row["id"]; ?>'>
<input type='checkbox'>
<label><?php printf ("%s", $row["service_name"]); ?></label>
<label>Ilość:</label><input type="number" name="quantity" value="<?php echo $row["quantity"]; ?>" placeholder='ILOŚĆ' disabled/>
<label>Cena netto:</label><input type="number" name="net_price" value="<?php echo $row["net_price"]; ?>" placeholder='CENA NETTO' disabled/>
</div>
var checkboxes = document.querySelectorAll("input[type='checkbox']");
for(var i=0; i < checkboxes.length; i++) {
checkboxes[i].addEventListener('click', function() {
var div = this.parentNode;
var x = div.childNodes;
for(y=0; y < x.length; y++) {
x[y].disabled = false;
}
}, false);
}
您应该将 x[y].disabled = false;
替换为
if(x[y].type === "number") x[y].disabled = !x[y].disabled;
或者如果您想禁用所有输入,包括您的复选框,只需使用 x[y].disabled = !x[y].disabled;
。
我试图删除单击复选框时在每个输入处禁用的属性。我能够打开这些输入,但在关闭它们时遇到问题。
<div class='single-service-<?php echo $row["id"]; ?>'>
<input type='checkbox'>
<label><?php printf ("%s", $row["service_name"]); ?></label>
<label>Ilość:</label><input type="number" name="quantity" value="<?php echo $row["quantity"]; ?>" placeholder='ILOŚĆ' disabled/>
<label>Cena netto:</label><input type="number" name="net_price" value="<?php echo $row["net_price"]; ?>" placeholder='CENA NETTO' disabled/>
</div>
var checkboxes = document.querySelectorAll("input[type='checkbox']");
for(var i=0; i < checkboxes.length; i++) {
checkboxes[i].addEventListener('click', function() {
var div = this.parentNode;
var x = div.childNodes;
for(y=0; y < x.length; y++) {
x[y].disabled = false;
}
}, false);
}
您应该将 x[y].disabled = false;
替换为
if(x[y].type === "number") x[y].disabled = !x[y].disabled;
或者如果您想禁用所有输入,包括您的复选框,只需使用 x[y].disabled = !x[y].disabled;
。