jquery 表单校验

<link type="text/css" href="<%=basepath%>css/form/validate.css"
    rel="stylesheet" />
<script type="text/javascript"
    src="<%=basepath%>js/common/jquery-1.9.1.js"></script>
<script type="text/javascript"
    src="<%=basepath%>js/common/jquery.validate.min.js"></script>
<script type="text/javascript"
    src="<%=basepath%>/js/common/jquery.form.js"></script>
<script type="text/javascript"
    src="<%=basepath%>/js/validate/userValidateMethods.js"></script>
<style type="text/css">
<script>
$(document).ready(function(){
            $("#testForm").validate({
                //提交成功时的回调函数
                submitHandler : function(){
                    var datas = $("#testForm").serializeArray();
                     $.post('<%=basepath%>jsp/testService/test.do', datas, function(result){
                         alert(result.message);
                         if(result.code == "0"){
                             //$("#submitBtn").attr("readonly","true");
                     //$("#draftBtn").attr("readonly","true");
                             
                         }
                     });
                },
                onfocusout: function(element){
                    $(element).valid();
                },
                rules: {
                    'projectinfo': {
                        checkProjectName : true
                    },
                    'customercompany': {
                        required : true
                    },
                    'customerlinkman' : {
                        required : true
                    },
                    'customermobile' : {
                        required : true,
                        isMobile : true
                    },
                    'customerphone' : {
                        isPhone : true
                    }
                },
                messages: {
                    'projectinfo': {
                        checkProjectName : "没有可选项目,必须填写项目信息"
                    },
                    'customercompany' : {
                        required : "请填写企业名称"
                    },
                    'customerlinkman' : {
                        required : "请填写联系人"
                    },
                    'customermobile' : {
                        required : "请填写联系人手机号码",
                        isMobile : "请填写正确的手机号码"
                    },
                    'customerphone' : {
                        isPhone : "请填写正确的电话号码"
                    }
                }
            });
        });
</script>

其中userValidateMethods.js为我们自定义的校验方法,方法由我们来实现。代码如下:

// 手机号码验证
jQuery.validator.addMethod("isMobile", function(value, element) {
var length = value.length;
var mobile = /^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$/;
return this.optional(element) || (length == 11 && mobile.test(value));
}, "请正确填写您的手机号码");

// 联系电话(手机/电话皆可)验证
jQuery.validator.addMethod('isPhone', function(value,element) {
var length = value.length;
var mobile = /^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$/;
var tel = /(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,8}/;
return this.optional(element) || (tel.test(value) || mobile.test(value));

}, '请正确填写您的联系电话');

//当项目名称没有时,必须填写项目信息
jQuery.validator.addMethod('checkProjectName', function(value,element) {
if($("#projectname").val() == ''){
return value != '';
}
return true;

}, '请正确填写您的联系电话');

// 手机号码范围验证
jQuery.validator.addMethod("validNumRange", function (value, element){

var flag=false;
if(value){
value=parseInt(value);
if(!isNaN(value)){
flag=true;
}
}
if(flag&&0<=value&&value<=10){
flag=true;
}else{
flag=false;
}
return flag;

}, "数值范围为0-10");

 

另外一种是由事件驱动的校验方式:

//同样,需引入依赖的js,css
<
script> 数字范围验证 function validateForm(){ return $("#testForm").validate({ onfocusout: function(element){ $(element).valid(); }, rules: { 'score': { required: true, validNumRange:true } }, messages: { 'score': { required: "评分必填", validNumRange:"范围不对" } } }); } $(function(){ validateForm(); $("#testBtn").click(function(){ if(validateForm().form()){ //序列化表单 var score= $("#testForm").serialize(); $.ajax( { url:'${pageContext.request.contextPath }/jsp/testService/test2.do', //执行指定的方法 data:score, type:'post', success:function(data) { if(data.code==0){ alert("评议评分成功 !"); } if(data.code==1){ alert("评议评分失败 !"); } }, }); }else{ return false; } }); }); </script>

 

 

posted on 2017-01-18 10:43  百东  阅读(152)  评论(0编辑  收藏  举报

导航