我有一个动态表单,可以通过动态生成的链接提交。我还绑定了submit()事件处理程序来验证是否所有选择都被选中。如何在以下事件处理程序中停止表单提交?
HTML链接:
<a href="javascript:void(0);" onclick="$(this).closest('form').submit();">Get</a>
事件处理程序:
$('form').submit(function(e){
var $target = e.target;
$($target).find('select').each(function(index, elem){
if($(elem).val() === ''){
return false; // this doesn't stop the form submission
}
});
});
答案 0 :(得分:1)
请尝试e.preventDefault()?
答案 1 :(得分:1)
使用jQuery提交表单时,传递给函数的参数称为事件对象:
$('form').submit(function(e){
在这种情况下,e
就是那个对象。
此事件对象可用于防止基于刚刚发生的事件发生标准(默认)操作。为此,您可以致电:
e.preventDefault();
此外,
$($target).find('select').each(function(index, elem){
if($(elem).val() === ''){
return false; // this doesn't stop the form submission
}
});
此代码块中的return
语句根本不会影响表单的事件,因为它会在单次迭代中突破您的.each()
匿名函数。
答案 2 :(得分:0)
试试这个,替换这一行
if($(elem).val() == '' || $(elem).val() == null )