Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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 JQuery隐藏复选框检查,但不取消选中_Javascript_Jquery_Html_Checkbox - Fatal编程技术网

Javascript JQuery隐藏复选框检查,但不取消选中

Javascript JQuery隐藏复选框检查,但不取消选中,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我已经为我正在工作的站点创建了一个替换img复选框。我可以成功地将复选框设置为选中,但不能取消选中。我可以在检查中看到这种变化 代码有什么问题?页面中没有错误。谢谢 HTML是: <input type="checkbox" id="AcceptTerms_check" name="AcceptTerms_check" style="display:none;"> <img class="chk-img" id="AcceptTerms" onclick="CheckboxCl

我已经为我正在工作的站点创建了一个替换img复选框。我可以成功地将复选框设置为选中,但不能取消选中。我可以在检查中看到这种变化

代码有什么问题?页面中没有错误。谢谢

HTML是:

<input type="checkbox" id="AcceptTerms_check" name="AcceptTerms_check" style="display:none;">
<img class="chk-img" id="AcceptTerms" onclick="CheckboxClick(this);" src="../../../wp-content/uploads/misc/notselected.png">
<span id="ts-cs-accept">I have read and accepted the terms</span>.

始终使用带有复选框的
prop
,因为您可以直接使用
true
false
值。您还可以大大减少代码,而不必重复复杂的jQuery选择器:

function CheckboxClick(element) {
    var $checkbox = jQuery('input:checkbox[name=' + element.id + '_check]')
    if($checkbox.prop("checked")) {
        $checkbox.prop('checked', false);
        jQuery(element).attr("src", "../../../wp-content/uploads/misc/notselected.png");
    } else {
        $checkbox.prop('checked', true);
        jQuery(element).attr("src", "../../../wp-content/uploads/misc/selected.png");
    };
};
这可以进一步简化,但我希望您仍然能够识别代码:)

e、 g.您可以使用以下选项进行切换:

$checkbox.prop("checked", !$checkbox.prop("checked"));
更新。。。不要在jQuery中使用基于属性的事件(例如,
onclick=
),请使用jQuery方式:

请尝试以下方法:


始终使用带有复选框的
prop
,因为您可以直接使用
true
false
值。您还可以大大减少代码,而不必重复复杂的jQuery选择器:

function CheckboxClick(element) {
    var $checkbox = jQuery('input:checkbox[name=' + element.id + '_check]')
    if($checkbox.prop("checked")) {
        $checkbox.prop('checked', false);
        jQuery(element).attr("src", "../../../wp-content/uploads/misc/notselected.png");
    } else {
        $checkbox.prop('checked', true);
        jQuery(element).attr("src", "../../../wp-content/uploads/misc/selected.png");
    };
};
这可以进一步简化,但我希望您仍然能够识别代码:)

e、 g.您可以使用以下选项进行切换:

$checkbox.prop("checked", !$checkbox.prop("checked"));
更新。。。不要在jQuery中使用基于属性的事件(例如,
onclick=
),请使用jQuery方式:

请尝试以下方法:


使用
.prop()
代替
.attr()
使用
.prop()
代替
。attr()
不是需要提供的布尔值。对与错,而不是“对”与“错”嘿,真蓝澳大利亚人,又是一个深夜!您的建议适用于更改图像,但我看不到复选框(在inspect中)更改为checked和back。我用
alert(jQuery('input:checkbox[name='+element.id+'\u check]').val()添加了一个警报在代码的末尾,警报将始终显示
on
。@TheRealPapa:添加了实用工作小提琴。如果你使用一个奇怪的浏览器,你可能需要在图像中添加
alt
文本才能在小提琴中看到它。太棒了,非常感谢!如果你感兴趣的话,我有一些有报酬的工作。我如何通过电子邮件与您联系?很高兴这有帮助。浏览我的网站链接联系人页面。我已经收到了足够多的垃圾邮件,但没有在这里发布:)干杯。这不是您需要提供的布尔值。对与错,而不是“对”与“错”嘿,真蓝澳大利亚人,又是一个深夜!您的建议适用于更改图像,但我看不到复选框(在inspect中)更改为checked和back。我用
alert(jQuery('input:checkbox[name='+element.id+'\u check]').val()添加了一个警报在代码的末尾,警报将始终显示
on
。@TheRealPapa:添加了实用工作小提琴。如果你使用一个奇怪的浏览器,你可能需要在图像中添加
alt
文本才能在小提琴中看到它。太棒了,非常感谢!如果你感兴趣的话,我有一些有报酬的工作。我如何通过电子邮件与您联系?很高兴这有帮助。浏览我的网站链接联系人页面。我已经收到了足够多的垃圾邮件,但没有在这里发布:)干杯。