jquery each方法退出的问题

问题:

今天碰到一个列表形式的表单校验需求,首先想到用jquery的each循环,然后校验结束,发现return false并没有阻止表单提交,因为return false 只结束了each循环。

解决:

定义一个小小的flag

submitForm = function() {
            var flag=true;
            //1.优惠金额正整数验证
            $("input[name$='discount_money']").each(function (i){
                var value=$(this).val();
                if (value.length>0){
                    if (!(/(^[1-9]\d*$)/.test(value))) {
                        flag=false;
                        $.messager.popup("请输入正整数优惠金额!");
                        return false;
                    }
                }
            });

            //2.微信支付折扣率0~1验证
            $("input[name$='discount']").each(function (i){
                var value=this.value;
                if (value.length>0){
                    if(value<=0 || value>=1){
                        flag=false;
                        $.messager.popup("请输入0~1之间的折扣率!");
                        return false;
                    }
                }
            });
            // 3.积分比率正整数验证
            $("input[name$='discount_point']").each(function (i){
                var value=this.value;
                if (value.length>0){
                    if (!(/(^[1-9]\d*$)/.test(value))) {
                        flag=false;
                        $.messager.popup("请输入正整数积分抵扣!");
                        return false;
                    }
                }
            });

            // 4.提交表单
            if(flag){
                $.ajax({
                    url:"save.json",
                    type:"post",
                    data:$form.serialize(),
                    success:function(data){
                        if (data.code==200){
                            $.messager.popup("操作成功!");
                            window.location.reload()
                        }else{
                            $.messager.popup(data.msg);
                        }
                    },
                    error:function(e){
                        $.messager.popup("操作失败!");
                    }
                });
            }
总结:

jquery有很多高级的用法,通配符,正则表达式都是值得研究的目标。

附:

each方法教程 http://www.w3school.com.cn/jquery/traversing_each.asp

你可能感兴趣的:(jquery each方法退出的问题)