gpt4 book ai didi

javascript - 如何禁用基于另一个复选框的复选框?

转载 作者:行者123 更新时间:2023-11-30 07:26:52 26 4
gpt4 key购买 nike

以下代码由 for 循环生成。

<form action="saveresponse.php" method="POST" name="mainForm">

<input class="cbox_yes" type="checkbox" name="yes[]" value="01.jpg"
onclick="spenable()" /> OK
<input class="cbox_sp" type="checkbox" name="sp[]" value="01.jpg" disabled />Special<br />

<input class="cbox_yes" type="checkbox" name="yes[]" value="02.jpg"
onclick="spenable()" /> OK
<input class="cbox_sp" type="checkbox" name="sp[]" value="02.jpg" disabled />Special<br />

etc etc upto n times...

现在,我想要的是在页面加载时,所有 sp[] 复选框都应该被禁用,只有当用户选中了相应的 yes[] 复选框时才启用。

我正在使用的 Javascript 代码:(只是为了检查 JS 是否正在捕获 yes[] 复选框的状态?

function spenable(){
var yes = document.mainForm.yes[].value;
if (yes == true)
//alert("true");
document.mainForm.yes[].value = checked;
else
//alert("false");
document.mainForm.yes[].value = checked;
};
};

但我没有收到任何警报(Neither Yes, Nor No)。

那么,第二行的 yes[](方括号)是不是不正确?或者我的 if/else 条件在 JS 中是错误的?

附言SO 或 Google 上的所有问题都只处理一个案例/一对。
附言如果需要,我可以将 yes[] 更改为 yes1、yes2、yes3 等以及相应的 sp1、sp2、sp3,其中 1、2、3 是 For 循环的 $i,但是我将如何在 JS 中捕获/引用它?< br/>

_更新:_

流程/条件是(澄清):
最初特殊复选框将被禁用,确定复选框将被取消选中。
然后,如果用户选中 Ok,Special 将被启用。
如果用户需要,他可以勾选特殊。
如果稍后用户改变主意并取消选中 OK,Special 应该取消选中并再次禁用。

最佳答案

为了简单起见,我在这里使用了 jQuery。

$("input[name='yes[]']").change(function() {      //When checkbox changes
var checked = $(this).attr("checked");
$(this).next().attr("disabled", !checked); //The next checkbox will enable
});​ // or disable based on the
// checkbox before it

演示: http://jsfiddle.net/DerekL/Zdf9d/
纯 JavaScript: http://jsfiddle.net/DerekL/Zdf9d/1/

更新

选中特殊复选框时,它将取消选中第一个复选框。
纯 JavaScript: http://jsfiddle.net/DerekL/Zdf9d/2/

更多更新

这是演示:
纯 JavaScript: http://jsfiddle.net/DerekL/Zdf9d/3/
jQuery: http://jsfiddle.net/DerekL/Zdf9d/4/

注意事项:document.querySelectorAll 适用于所有现代浏览器和 IE8+,包括 IE8。使用 jQuery 总是更好如果你想支持 IE6。

关于javascript - 如何禁用基于另一个复选框的复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11266340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com