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函数中的匹配行数
此行阻止复选框检查:
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)
这应该让默认行为继续,而不会传播之后将触发的任何其他事件.
或者,如果不再需要它(根据您的评论),您可以将其取出.
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |