each 实现表单验证之后提交

在jquery中, each 方法是遍历当前的属性,
//验证时间期限 回流
$ ( '.not_success' ). each ( function () {
check_time ( this );
});
function check_time (obj) {
var val = $ . trim ( $ (obj). val ());
if ( val === "" || val == null ){
$ ( '#confirm-btn' ). prop ( 'disabled' , true );
return false ;
} else {
if (! isNaN ( val )){
if ( val > 0 ){
$ ( '#confirm-btn' ). prop ( 'disabled' , false );
return true ;
} else {
$ ( '#confirm-fenpei-btn' ). prop ( 'disabled' , true );
swal ( '' , '时间期限必须大于0' , 'warning' ); return false ;
}
} else {
$ ( '#confirm-btn' ). prop ( 'disabled' , true );
return false ;
}
}
}
如上代码,有多行,需要输入
姓名
年龄
   

张三
25
     
王五
21
     
我要判断 年龄这个框的值必须是数字,并且不能为空,才能提交。
但是上边的代码有个BUG.
在我点击保存的时候,提示我了,时间期限必须大于0 等提示语 但是虽然有reture false 。但是触发了 click 事件之后
,依旧提交post了。
显然,这个return false。并没有终止他的提交。

问题存在哪里呢?

问题就出在 each 这个方法。因为这个方法遍历查询查询之后,如果条件不满足 reture false 是跳出遍历。而非终止后面的代码。
So,reture false 在each里是无效的,怎么解决呢?


解决办法,用全局变量,设个状态。
var status_back = 0;
$ ( '.not_success' ). each ( function () {
check_time ( this );
if( check_time ( this )){
status_back = 1;
}
});

然后,在 post 提交前判断这个状态值

在此记录 each 方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值