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

时间:2014-02-25 22:36:02

标签: javascript jquery html checkbox

我的表格如下:

enter image description here

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

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

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

我唯一能想到的是点击功能上的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

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

1 个答案:

答案 0 :(得分:6)

此行阻止复选框检查:

return false; //stops the page redirect as per normal operation

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

来解决此问题
e.stopPropagation();

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

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