Javascript 复选框属性发生变化的奇怪行为
我有以下代码:Javascript 复选框属性发生变化的奇怪行为,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我有以下代码: <table border="1" style="margin:0 auto;"> <tr> <td class="pointer" style="padding: 2px;"><input style="margin-left: 2px;" type="checkbox" name="nuovoCheck" id="newCheckId" value="N" /></td> &l
<table border="1" style="margin:0 auto;">
<tr>
<td class="pointer" style="padding: 2px;"><input style="margin-left: 2px;" type="checkbox" name="nuovoCheck" id="newCheckId" value="N" /></td>
<td id="textCheckNuovo" class="pointer" onClick="return selectNew();"><b>New</b></td>
</tr>
</table>
我不知道为什么这只工作了1次:
- 我单击并选中复选框
- 我再次单击,复选框将取消勾选
- 但如果第三次点击,什么也不会发生
function selectNew() {
if ($('#newCheckId').prop('checked') == false) {
$('#newCheckId').prop('checked', true)
}
else {
$('#newCheckId').prop('checked', false)
}
}
试试这个:
if ($('#newCheckId').prop('checked') == false) {
$('#newCheckId').prop('checked', true)
$('#newCheckId').attr('checked', true)
}
else {
$('#newCheckId').removeAttr('checked')
}
如果您可以处理与HTML5兼容的问题,“
标签
”标记可以处理这个问题,在语义上绑定文本(即,它实际上被理解为作为复选框的标签链接),并且在不使用javascript的情况下工作(对于兼容HTML5的浏览器)
例如
新的
查看这个JS提琴(不带javascript)的动作示例:为什么不
$(“#newCheckId”).prop('checked',true)
在if
和else
中的onClick
在Markupit中应该是onClick
在firefox和chrome中对我有效。可能是由较旧的jquery版本引起的。这是可能的,@Alist34请定义jquery、firefox、chrome?的版本!谢谢你。工作完美。
if ($('#newCheckId').prop('checked') == false) {
$('#newCheckId').prop('checked', true)
$('#newCheckId').attr('checked', true)
}
else {
$('#newCheckId').removeAttr('checked')
}
<table border="1" style="margin:0 auto;">
<tr>
<td class="pointer" style="padding: 2px;"><input style="margin-left: 2px;" type="checkbox" name="nuovoCheck" id="newCheckId" value="N" /></td>
<td id="textCheckNuovo" class="pointer"><label for="newCheckId">New</label></td>
</tr>
</table>