Jquery onclick似乎阻止了复选框检查

Gio*_*nni 0 html javascript checkbox jquery

我有一个如下形式:

在此输入图像描述

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

$(document).on('click', '#filter', function(){
    //on click do the following
Run Code Online (Sandbox Code Playgroud)

这非常有效.但是,我现在已经在表单中添加了一个复选框.表单的其余部分继续完美运行,但复选框"不可检查"!(如果它们被设置为预先检查,则它们保持预先检查,如果它们被设置为未选中,则它们保持未选中状态).

我唯一能想到的是点击功能上的jquery覆盖了复选框的检查.会是这种情况吗?我可以通过使用blur而不是click理想的代码将在点击上运行来纠正问题,并且无论如何id都喜欢了解发生了什么!有任何想法吗?


编辑

这是点击处理程序的内容:

$(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
Run Code Online (Sandbox Code Playgroud)

基本上,click函数从数据库中的表单中查找匹配的详细信息,并返回要放入processdata函数中的匹配行数

Bic*_*Bic 6

此行阻止复选框检查:

return false; //stops the page redirect as per normal operation
Run Code Online (Sandbox Code Playgroud)

使用return false将停止事件传播并防止默认行为.复选框的默认行为是单击时选中/取消选中自身.您可以通过将其更改为:

e.stopPropagation();
Run Code Online (Sandbox Code Playgroud)

这应该让默认行为继续,而不会传播之后将触发的任何其他事件.

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