- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下代码由 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/
我是一名优秀的程序员,十分优秀!