因项目中表单验证,在某些特殊场景下 jquery.validate.min.js 不能满足需求,所以自己简单写了个
使用方式:
<input type="text" id="Title" name="Title" validate="{ required: true,phone:true, messages: { required: '活动主题不能为空',phone:'手机号码格式错误'}}" /> //判断是否通过 function submit() { var result = validForm("activeForm"); if (result.issuccess) { //成功 } else { alert(result.tip); } }验证完整代码:
//非空 required 手机号 phone 身份证 card email email 数字 number function validForm(formId) { var tip = ""; var issuccess = true; var items = $("#" + formId).find("input:text,textarea"); $.each(items, function (name, val) { var str = $(val).attr("validate"); if (str==undefined) return true; var valid = eval('(' + str + ')'); var value = $(val).val(); //非空 if (valid.required == true) { issuccess = ValidateEmpty(value); if (issuccess == false) { tip = valid.messages.required == undefined ? "此项必填" : valid.messages.required; return false; } } //手机号 if (valid.phone == true) { issuccess = ValidatePhone(value); if (issuccess == false) { tip = valid.messages.phone == undefined ? "手机号码格式不正确" : valid.messages.phone; return false; } } //数字 if (valid.number == true) { issuccess = ValidateNumber(value); if (issuccess == false) { tip = valid.messages.number == undefined ? "必须为数字" : valid.messages.number; return false; } } }); return { issuccess: issuccess, tip: tip }; } //非空验证 function ValidateEmpty(value) { if (value == undefined) return false; else if ($.trim(value).length == 0) return false; return true; } //验证手机 function ValidatePhone(value) { if (value == undefined) return false; var length = value.length; var mobile = /^1[3|4|5|7|8]\d{9}$/; return (length == 11 && mobile.exec(value)) ? true : false; } //验证身份证 function ValidateCard(value) { if (value == undefined) return false; // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; return reg.test(value); } //验证邮箱 function ValidateEmail(value) { if (value == undefined) return false; var reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; return reg.test(value); } //验证数字 function ValidateNumber(value) { if (value == undefined) return false; var reg = /^[0-9]*$/; return reg.test(value); }