Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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_Checkbox - Fatal编程技术网

Javascript 使用jquery读取值切换复选框错误

Javascript 使用jquery读取值切换复选框错误,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我有一个页面,其中在数据库的下一个条目中显示了一系列复选框,每个复选框都有一个onClick事件,用于将其值写入数据库 我想在表单上有一个按钮来切换所有复选框,因此我使用了以下函数/jQuery: function toggle_chk_links(){ $(".chk_user_link").click(); }; 它在视觉上工作得很好,唯一的问题是,尽管它根据需要触发onClick事件,但复选框是用它的旧值读取的,因此数据库会得到与所需值相反的值!这是在其“onClick”事件

我有一个页面,其中在数据库的下一个条目中显示了一系列复选框,每个复选框都有一个onClick事件,用于将其值写入数据库

我想在表单上有一个按钮来切换所有复选框,因此我使用了以下函数/jQuery:

function toggle_chk_links(){
    $(".chk_user_link").click();
};  
它在视觉上工作得很好,唯一的问题是,尽管它根据需要触发onClick事件,但复选框是用它的旧值读取的,因此数据库会得到与所需值相反的值!这是在其“onClick”事件中读取复选框的行:

active=Number($("#chk_brandlink"+brand_ID).prop("checked"));

我需要用户能够手动点击每个复选框,以及切换它们,理想情况下使用一个onClick函数调用。有什么建议吗?

最简单的解决方案是处理
onchange
事件,而不是
onclick
事件

$(".chk_user_link").change(function() {
  // your change handler
});

示例:

最简单的解决方案是处理
onchange
事件,而不是
onclick
事件

$(".chk_user_link").change(function() {
  // your change handler
});

示例:

当前是否只在IE或其他浏览器上使用Firefox,而不是在其他浏览器上使用Firefox?当前是否只在IE或其他浏览器上使用Firefox,而不是在其他浏览器上使用Firefox?问题是,每个复选框都有一个onclick事件,将两个变量传递给ajax写入,这将很难使用通用jquery更改处理程序进行复制您可以为每个复选框使用不同的(打开)更改处理程序,而不是onclick处理程序。所以只要把“onclick”改为“onchange”就行了,还是我遗漏了什么?编辑:只是在每个复选框上使用了onchange而不是onclick,它很有魅力,谢谢。您是否意识到任何跨浏览器问题、需要失去焦点的控件等?至少在IE、Firefox和Chrome的现代版本中,情况并非如此。不过,我不知道更老的浏览器。如果你点击复选框,更改甚至会在点击前被调用。这让我烦了好几个小时。。。x:谢谢-问题是,每个复选框都有一个onclick事件,它将两个变量传递给ajax写入,这很难使用通用jquery更改句柄进行复制。您可以为每个复选框使用一个不同的(on)更改句柄,而不是onclick句柄。所以只要把“onclick”改为“onchange”就行了,还是我遗漏了什么?编辑:只是在每个复选框上使用了onchange而不是onclick,它很有魅力,谢谢。您是否意识到任何跨浏览器问题、需要失去焦点的控件等?至少在IE、Firefox和Chrome的现代版本中,情况并非如此。不过,我不知道更老的浏览器。如果你点击复选框,更改甚至会在点击前被调用。这让我烦了好几个小时。。。x: