gpt4 book ai didi

Jquery多重提交事件

转载 作者:行者123 更新时间:2023-12-01 01:09:40 27 4
gpt4 key购买 nike

我为 jquery 编写了全局迷你表单验证。这里;这段代码,所有表单提交事件监听器。

$('form').submit(function() {
var returnfalse = 'true';
var min;
var maxlength;

$('input[type=text], input[type=password]', this).removeClass('error');

jQuery.each( $('input[type=text], input[type=password]', this) , function() {


min = $(this).attr('min');
maxlength = $(this).attr('maxlength');
inputValue = $(this).val().trim();



if( $(this).attr('min') != '' && $(this).attr('min') != null && inputValue.length < min ) {
alert('ERROR !!!!!')
$(this).addClass('error');
$(this).focus();
returnfalse = 'false';
}



if(returnfalse != 'true')
return false;


});

if(returnfalse != 'true')
return false;

});

以及其他提交事件;

$('#registerForm').submit(function(){
alert('this Work...');
});

当我#registerForm提交时,这两个事件起作用。但我在事件上面写了 return false。

为什么第二个事件有效?

最佳答案

两个考虑因素:

1)您应该在事件上调用 stopImmediatePropagation() 以防止警报( http://jsfiddle.net/R7uwa/ )(如果我没记错的话,返回 false 等于 .preventDefault() 和 stopPropagation()。因此在这种情况下没有警报:

$('form').submit(function(e){
e.stopImmediatePropagation();
return false;
});


$('form').submit(function(){
alert('hi');
});

2) 以这种方式绑定(bind)的事件按照您绑定(bind)它们的顺序执行,因此您应该首先绑定(bind)验证,以便停止传播工作 ( http://jsfiddle.net/R7uwa/1/ )。但如果你看这个问题jQuery event handlers always execute in order they were bound - any way around this?您可以看到有一个解决方法。

在这种情况下,您会收到警报

$('form').submit(function(){
alert('hi');
});


$('form').submit(function(e){
e.stopImmediatePropagation();
return false;
});

关于Jquery多重提交事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9885546/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com