Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 复选框属性发生变化的奇怪行为_Javascript_Jquery_Checkbox - Fatal编程技术网

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>