jquery-validation使用
该前端验证有两种使用方式,一种校验条件写在标签内部的class属性里,另一种是将校验写在js代码中。
第一种方式 写在标签中能够很直观的展现表单标签的检验,我觉得对于标签比较多的时候适合使用这种。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>标签的方式验证</title>
<!--引入js-->
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="js/jquery.validate.min.js"></script>
<!--自定义验证js其中有手机验证和身份证验证-->
<script src="js/user_defined_validate.js"></script>
<!--中文提示信息js-->
<script src="js/message_cn.js"></script>
</head>
<body>
<form action="#" method="post" id="formT">
<label>密码:</label>
<input type="password" name="password" id="password" class="required" /><br />
<!--必填和邮箱验证-->
<label>邮箱:</label>
<input type="text" name="email" id="email" class="required email" /><br />
<!--手机号验证-->
<label>手机:</label>
<input type="text" name="phone" id="phone" class="isPhone" /><br />
<label>一线城市:</label><br />
<input type="checkbox"
id="shenzhen" name="citys" value="shenzhen" class="required minlength:2" />
<input type="checkbox" id="shanghai" name="citys" value="上海" />
<input type="checkbox" id="hangzhou" name="citys" value="hz" />
<input type="checkbox" id="beijing" name="citys" value="peking" />
<br />
<input type="submit" value="提交" />
</form>
<script>
//页面加载后进行验证
$().ready(function() {
$("#formT").validate({
//设置表单点击体积submit后不提交
debug:true
});
});
</script>
</body>
</html>第二种写在js代码中:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="js/jquery.validate.min.js"></script>
<script src="js/user_defined_validate.js"></script>
<script>
$().ready(function(){
var validate = $("#formT").validate({
//调试模式为true会取消submit的默认提交功能
debug: true,
//errorClass: "label.error", //默认为错误的样式类为:error
//当为false时,验证无效时,没有焦点响应
focusInvalid: false,
onkeyup: false,
submitHandler: function(form) {
alert('提交表单!');
form.submit();
},
//校验规则
rules: {
password: {
required: true,
rangelength: [4, 10]
},
email: {
required: true,
email: true
},
phone: {
required: true,
isPhone:true
}
,
sex:{
required:true
}
},
//对应规则给出的提示信息
messages:{
password:{
required: '必填',
rangelength:$.validator.format("密码最小长度:{4},最大长度{10}")
},
email:{
required:"必填",
email:"请输入正确的email格式!"
},
phone:{
required:"必填想",
isPhone:"请输入正确的手机号!"
}
,
sex:{
required:"必填"
}
}
});
});
</script>
<title></title>
</head>
<body>
<form action="#" method="post" id="formT">
<label>密码:</label><input type="password" name="password" id="password" />
<br />
<label>邮箱:</label><input type="text" name="email" id="email" /><br />
<label>手机:</label><input type="text" name="phone" id="phone" /><br />
<label>性别:</label><br />
<label>男:</label>
<input type="checkbox" name="male" id="male" value="sex"/>
<label>女:</label>
<input type="checkbox" name="female" id="female" value=""/>
<br />
<input type="submit" value="提交" />
</form>
</body>
</html>说明文件:默认校验规则:
(1)required:true 必输字段
(2)remote:"check.php" 使用ajax方法调用check.php验证输入值
(3)email:true 必须输入正确格式的电子邮件
(4)url:true 必须输入正确格式的网址
(5)date:true 必须输入正确格式的日期
(6)dateISO:true 必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22
只验证格式,不验证有效性
(7)number:true 必须输入合法的数字(负数,小数)
(8)digits:true 必须输入整数
(9)creditcard: 必须输入合法的信用卡号
(10)equalTo:"#field" 输入值必须和#field相同
(11)accept: 输入拥有合法后缀名的字符串(上传文件的后缀)
(12)maxlength:5 输入长度最多是5的字符串(汉字算一个字符)
(13)minlength:10 输入长度最小是10的字符串(汉字算一个字符)
(14)rangelength:[5,10] 输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)
(15)range:[5,10] 输入值必须介于 5 和 10 之间
(16)max:5 输入值不能大于5
(17)min:10 输入值不能小于10默认提示:
messages: {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
dateDE: "Bitte geben Sie ein g眉ltiges Datum ein.",
number: "Please enter a valid number.",
numberDE: "Bitte geben Sie eine Nummer ein.",
digits: "Please enter only digits",
creditcard: "Please enter a valid credit card number.",
equalTo: "Please enter the same value again.",
accept: "Please enter a value with a valid extension.",
maxlength: $.validator.format("Please enter no more than {0} characters."),
minlength: $.validator.format("Please enter at least {0} characters."),
rangelength: $.validator.format("Please enter a value between {0} and {1}
characters long."),
range: $.validator.format("Please enter a value between {0} and {1}."),
max: $.validator.format("Please enter a value less than or equal to {0}."),
min: $.validator.format("Please enter a value greater than or equal to {0}.")
}中文默认提示添加js:
jQuery.extend(jQuery.validator.messages, {
required: "此内容为必填项,请输入!",
remote: "内容输入错误!",
email: "E-mail格式错误,请重新输入!",
url: "网址格式错误,请重新输入!",
date: "日期格式错误,请重新输入!",
dateISO: "日期格式错误,请重新输入!",
number: "请输入合法的数字!",
digits: "请输入零或正整数!",
creditcard: "信用卡号格式错误,请重新输入!",
equalTo: "两次输入不一致,请重新输入!",
accept: "请输入拥有合法后缀名的字符串!",
maxlength: jQuery.validator.format("字符串长度不能大于{0}!"),
minlength: jQuery.validator.format("字符串长度不能小于{0}!"),
rangelength: jQuery.validator.format("字符串长度只允许在{0}-{1}之间!"),
range: jQuery.validator.format("输入的数值只允许在{0}-{1}之间!"),
max: jQuery.validator.format("输入的数值不允许大于{0}!"),
min: jQuery.validator.format("输入的数值不允许小于{0}!"),
integer: "请输入合法的整数!",
positive: "请输入合法的正数!",
positiveInteger: "请输入合法的正整数!",
mobile: "手机号码格式错误,请重新输入!",
phone: "电话号码格式错误,请重新输入!",
zipCode: "邮政编码格式错误,请重新输入!",
requiredTo: "此内容为必填项,请输入!",
username: "只允许包含中文、英文、数字和下划线!",
prefix: "请输入以 {0} 开头的字符串!",
lettersonly: "只允许包含字母!"
});自定义校验js:
//验证手机
jQuery.validator.addMethod("isPhone", function(value, element) {
var length = value.length;
var mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/;
return this.optional(element) || (length == 11 && mobile.test(value));
}, "请填写正确的手机号码"); //可以自定义默认提示信息实例测试:jqvalidationtest.zip