jquery.validate验证text,checkbox,radio,selected

jquery.validate是jquery的一个插件,用来辅助开发者在客户端方便快捷的实现表单验证,最终达到提高用户体验的目的。

官网:

http://plugins.jquery.com/validate/

示例代码

index.cshtml

<form id="formLogin" method="post">
 <div>
 <label for="username">Username:</label>
 <input type="text" id="username" name="username" />
 </div>
 <div>
 <label for="password">password:</label>
 <input type="text" id="password" name="password" />
 </div>
 <div>
 <label for="password1">password1:</label>
 <input type="text" id="password1" name="password1" />
 </div>
 <div>
 <label for="sex">sex:</label>
 <select id="sex" name="sex">
 <option id="sexopt" value="" selected="selected">请选择</option>
 <option id="sexnan" value="1">男</option>
 <option id="sexnv" value="2">女</option>
 </select>
 </div>
 <div>
 <label for="favorite">level:</label>
 <input type="checkbox" id="sport" name="favorite" value="sport" />sport
 <input type="checkbox" id="write" name="favorite" value="write" />write
 </div>
 <div>
 <label for="level">level:</label>
 <input type="radio" id="one" name="level" value="one" />1
 <input type="radio" id="two" name="level" value="two" />2
 </div>
 <div>
 <input id="submit" type="button" value="submit" />
 </div>
</form>
@section scripts{
<script type="text/javascript" src="/content/home/index.js"></script>
}

jquery.validate在定位html标签的时候,默认使用name属性来获取标签,所以需要开发者给需要进行验证的标签都加上name属性,并且赋值。

index.js

$().ready(function () {
 $("#formLogin").validate({
 rules: {
 username: {
 required: true
 },
 password: {
 required: true
 },
 sex: {
 required: true
 },
 level: {
 required: true
 },
 favorite: {
 required: true
 }
 },
 messages: {
 username: {
 required: "please input username"
 },
 password: {
 required: "please input password"
 },
 sex: {
 required: "please select sex"
 },
 level: {
 required: "level requred"
 },
 favorite: {
 required: "favorite required"
 }
 },
 errorPlacement: function (error, element) { //指定错误信息位置
 if (element.is(':radio') || element.is(':checkbox')) { //如果是radio或checkbox
 var eid = element.attr('name'); //获取元素的name属性
 error.appendTo(element.parent()); //将错误信息添加当前元素的父结点后面
 } else {
 error.insertAfter(element);
 }
 }
 });
});
$("#submit").click(function () {
 $("#submit").submit();
});

有时候我们需要使用正则表达式对一些输入进行验证,比如说邮箱,电话号码,或者是用户名必须字母开头并且长度要在5-30位,等等之类的。

jquery.validate默认没有提供正则表达式的验证,但是它提供了一个扩展,我们可以自己添加关于正则表达式的验证规则。

$(function () {
 // 判断用户输入的value是否满足传入的正则params的规范
 jQuery.validator.addMethod("pattern", function (value, element, params) {
 
 if (!params.test(value)) {
 return false;
 }
 return true;
 });
});

这样我们就可以像下面这样使用我们自定义的正则表达式验证了。

$().ready(function () {
 $("#formLogin").validate({
 rules: {
 
 tel: {
 required:true,
 pattern: /^[0-9]+$/
 }
 },
 messages: {
 
 tel: {
 required:'tel required',
 pattern: "regex error"
 }
 }
 
 });
});

怎么样,是不是很酷啊!

$(“#formSupplier”).validate还有一些其他的参数,跟多的参数可以查看

http://blog.csdn.net/a497785609/article/details/5758613

在这里先介绍两个比较常用的。

errorElement

错误提示的html标签

submitHandler

验证成功之后的操作

$("#formSupplier").validate({
 errorElement: "span",
 
 submitHandler: function (form) {
 if (btnType == 1) {
 
 submitUpdateSupplier();
 } else {
 offShelf();
 }
 },
 rules: {
 txtSuUserName: {
 required: true,
 pattern: regexUsername
 }
 },
 messages: {
 txtSuUserName: {
 required: "请填写编号!",
 pattern: "请注意,编号只能使用3-15位的字母组合!"
 }
 }
});
© 版权声明

相关文章

没有相关内容!