直到最近,以下代码段工作正常,复选框本身被CSS隐藏,并且单击该按钮可以更改复选框的状态,然后可以根据该复选框的状态表单提交,不过,最近(不知道什么时候)这个停止工作,现在该按钮的点击什么也不做:使用按钮标签更改复选框的状态不再有效
<label for="someCheckBox" class="someCheckBox">
<input type="checkbox" id="someCheckBox" name="someCheckBox" value="checkBox" />
<button type="button" title="Some CheckBox">Some CheckBox</button>
</label>
CSS:
#someCol label.someCheckBox button {
background-color: black;
color: #C0C0C0;
height: 1.5em;
margin: 10px 4px 0 0;
border: 1px solid #C0C0C0;
-moz-border-radius: .75em;
-webkit-border-radius: .75em;
border-radius: .75em;
font-size: 1.0em;
font-family:"Final Frontier";
font-weight: bold;
width: 40px;
}
#someCol label.someCheckBox button:hover {
background-color: #C0C0C0;
color: black;
border: 1px solid #606060;
cursor: pointer;
-moz-animation-duration: 3s;
-moz-animation-name: glow;
-moz-animation-iteration-count: infinite;
-moz-animation-play-state: running;
-webkit-animation-duration: 3s;
-webkit-animation-name: glow;
-webkit-animation-iteration-count: infinite;
-webkit-animation-play-state: running;
animation-duration: 3s;
animation-name: glow;
animation-iteration-count: infinite;
animation-play-state: running;
}
#someCol label.someCheckBox input {
position:absolute;
top:-20px;
}
#someCol label.someCheckBox input:checked + button {
background-color: #C0C0C0;
color: black;
border: 1px solid #606060;
box-shadow: 0 0 15px #C0C0C0;
-webkit-box-shadow: 0 0 15px #C0C0C0;
}
#someCol label.someCheckBox button {
width: 90px;
margin: 10px 0 0 4px;
}
应当指出的是,我简要地尝试更新其中一个按钮/复选框是文本标签而不是a按钮和复选框的状态确实发生了变化,但是,我希望按钮可以用于表单的外观,并且我有很多这些按钮,因此需要花费大量工作来更改它们...
同样,我最初喜欢这种方法,因为它减少了JS使得表单更加友好的需求,所以尽管我可以编写一个脚本来改变复选框的状态,但它并不符合我的基本目的,并且它也会当以前工作时,需要花费大量的工作来纠正以这种方式设置的所有按钮。
因为这确实工作过,我还没有触及代码库的某个时间,我不确定除了浏览器更新之外有什么改变,任何人都可以协助,因为我一直在撕掉我的头发几个小时,而且不能弄清楚什么改变了...
本周早些时候我看到了这个问题,然后,因为现在无法捉摸如何原来的版本将在工作过第一名。它是否是一个神奇的复制和粘贴从某处,或者你能解释它是如何工作的?您现在获得的解决方案有几点 - 您不需要测试单选按钮的状态 - 如果未检查,您检查它,但不存在相反的操作。所以,只要检查它是否是收音机。接下来,您有7个使用getElementById的实例 - 只需在func的顶部调用它一次,然后将结果分配给一个变量。另外,不需要转义'''。 – enhzflep