我有一个如下所示的表单:
表单 ID 是“filter”,我有一个 jquery onclick 函数,它使用以下行运行代码:
$(document).on('click', '#filter', function(){
//on click do the following
这非常有效。不过,我现在已在表单中添加了一个复选框。表单的其余部分继续完美工作,但复选框“不可选中”! (如果它们被设置为预先检查,则它们将保持预先检查状态,如果它们被设置为未检查,则它们将保持未检查状态)。
我唯一能想到的是 jquery on click 函数覆盖了复选框的检查。会是这样吗?我可以通过使用 blur
而不是 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 函数从数据库中的表单查找匹配的详细信息,并返回要放入 processdata
函数中的匹配行数
最佳答案
此行阻止检查复选框:
return false; //stops the page redirect as per normal operation
使用return false
将停止事件传播并阻止默认行为。复选框的默认行为是在单击时选中/取消选中自身。您也许可以通过将其更改为来解决此问题:
e.stopPropagation();
这应该让默认行为继续,而不传播随后将触发的任何其他事件。
或者,如果不再需要,您可以将其取出(根据您的评论)。
关于javascript - Jquery onclick 似乎阻止了复选框检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22027727/