因项目中表单验证,在某些特殊场景下 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);
}