我的表格如下:
表单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
函数的匹配行数
答案 0 :(得分:6)
此行阻止复选框检查:
return false; //stops the page redirect as per normal operation
使用return false
将停止事件传播并阻止默认行为。复选框的默认行为是单击时选中/取消选中自身。您可以通过将其更改为:
e.stopPropagation();
这应该让默认行为继续,而不会传播之后会触发的任何其他事件。
或者,如果不再需要(根据您的评论),您可以将其取出。