Javascript jqueryonclick似乎阻止了复选框检查

Javascript jqueryonclick似乎阻止了复选框检查,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我的表格如下: 表单id是“filter”,我有一个jquery onclick函数,它使用以下行运行代码: $(document).on('click', '#filter', function(){ //on click do the following 这很好用。但是,我现在在表单中添加了一个复选框。表单的其余部分继续完美工作,但复选框是“不可选中的”!(如果设置为预检查,则保持预检查状态;如果设置为未检查,则保持未检查状态) 我能想到的唯一一件事是,单击jquery函数覆盖了

我的表格如下:

表单id是“filter”,我有一个jquery onclick函数,它使用以下行运行代码:

$(document).on('click', '#filter', function(){
    //on click do the following
这很好用。但是,我现在在表单中添加了一个复选框。表单的其余部分继续完美工作,但复选框是“不可选中的”!(如果设置为预检查,则保持预检查状态;如果设置为未检查,则保持未检查状态)

我能想到的唯一一件事是,单击jquery函数覆盖了复选框的检查。会是这样吗?我可以通过使用
blur
而不是
click
来纠正问题,但理想情况下,代码会在click上运行,并且在任何情况下,我都想了解发生了什么!有什么想法吗


编辑 这是单击处理程序的内容:

$(document).on('click', '#filter', function(){
    //on click do the following




        var formData = $(this).serialize(); //put the form names and values into an array called formdata
        $.get('filtertest.php',formData,processData); //jquery ajax call

        function processData(data){
            if(data==1){
            $('#content').html('<h2>There is ' + data + ' property available!</h2>');
            $('#linky').show();
            }
            else if(data==0){
            $('#content').html('<h2>There are no properties available, please expand your search options.</h2>');
            $('#linky').hide();
            }
            else{
            $('#content').html('<h2>There are ' + data + ' properties available!</h2>');
            $('#linky').show();
            }
        }//end processData

        return false; //stops the page redirect as per normal operation
        });//end submit
$(文档)。在('click','#filter',函数()上{
//单击执行以下操作
var formData=$(this).serialize();//将表单名称和值放入名为formData的数组中
$.get('filtertest.php',formData,processData);//jquery ajax调用
函数processData(数据){
如果(数据==1){
$(“#content').html('有'+data+'属性可用!');
$('#linky').show();
}
else if(数据==0){
$(“#content').html('没有可用的属性,请展开搜索选项');
$('#linky').hide();
}
否则{
$(“#content').html('有'+data+'属性可用!');
$('#linky').show();
}
}//结束处理数据
return false;//按正常操作停止页面重定向
});//结束提交

基本上,单击函数从数据库中的表单中查找匹配的详细信息,并返回要放入
processdata
函数中的匹配行数这一行阻止复选框选中:

return false; //stops the page redirect as per normal operation
使用
returnfalse
将停止事件传播并阻止默认行为。复选框的默认行为是在单击时选中/取消选中自身。您可以将其更改为:

e.stopPropagation();
这将允许默认行为继续,而不会传播任何其他随后将触发的事件


或者,如果不再需要它,您可以将其取出(根据您的评论)。

这一行阻止复选框选中:

return false; //stops the page redirect as per normal operation
使用
returnfalse
将停止事件传播并阻止默认行为。复选框的默认行为是在单击时选中/取消选中自身。您可以将其更改为:

e.stopPropagation();
这将允许默认行为继续,而不会传播任何其他随后将触发的事件


或者,如果不再需要它,您可以将其取出(根据您的评论)。

请共享您的标记,或者在JSFIDLE上设置一个示例。在表单中添加一个复选框应该不会有问题,除非你在某个地方有其他代码。等一下,我会告诉你…这表明点击不是罪魁祸首。很可能是您的单击处理程序中的某个部分在执行此操作。您的
单击
代码中是否有
默认值
?这可能会阻止执行默认操作(选中/取消选中复选框)。请参阅编辑(由于代码包含对另一个页面的ajax调用,因此无法执行jquery来显示它……请共享您的标记,或者在JSFIDLE上设置一个示例。除非您在其他地方有其他代码,否则在表单中添加一个复选框应该不会有问题。稍后,我将显示JSFIDLE……这表明单击不是罪魁祸首。这可能是y中的某个问题。)正在执行此操作的单击处理程序。您的
单击
代码中是否有
预防默认
?这可能会阻止执行默认操作(选中/取消选中复选框)。请参阅编辑(不能用jquery来显示它,因为代码中包含对另一个页面的ajax调用……我是个白痴。从我在表单上有一个提交按钮的时候起,它就一直留在那里。我看了又看,看了又看,试图在这里发布之前自己修复它!)是的,它已经不存在了!尽管将来如果我尝试修改代码,使其也适用于没有javascript的用户(即添加提交按钮以在页面上获得结果,而不是自动获得结果)这是阻止表单提交到下一页的方法吗?如果您确实提交了表单,那么该页仍然需要导航到某个地方(可能是自己)重新呈现新数据。如果没有JavaScript,您将不得不在服务端代码中处理所有数据。我是一个白痴。从我在表单上有一个提交按钮时,这些数据就一直留在那里。我看了又看,看了又看代码,试图自己修复它,然后再发布到这里!:)是的,它已经不存在了!尽管将来如果我尝试修改代码,使其也适用于没有javascript的用户(即添加提交按钮以在页面上获得结果,而不是自动获得结果)这是阻止表单提交到下一个页面的方法吗?如果您确实提交了表单,那么页面仍然需要导航到某个地方(可能是到自身),并使用新数据重新呈现。如果没有JavaScript,您将不得不在服务端代码中处理这一切。