jquery validate 插件
jquery validate plugin是个很不错的验证form的插件,提供许多类型的验证并且UI错误提示。
主页:
http://docs.jquery.com/Plugins/Validation
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
配置一个form下面的验证:
$('#frm').validate({
rules : {
username : {
minlength : 2,
required : true
},
email : {
required : true,
email : true
}
},
messages : {
username : {
// minlength : jQuery
// .format("At least {0} characters required!")
minlength : 'Why your name is so short?'
},
email : {
required : "We need your email address to send token to you"
}
}
});
据我使用的情况,选择子必须是个form,否则报错。
上面的例子为name=”username”这个元素指定了最小长度2,必须这两个验证
为name=”email”这个元素指定了必须和email这两个验证。
对应的messages则制定了出错后的显示字符串(如果要支持i18n则需要另外的使用方法。)
结合bootstrap使用的例子http://alittlecode.com/jquery-form-validation-with-styles-from-twitter-bootstrap/
代码中只需要添加如下:
highlight : function(element) {
$(element).closest('.control-group').removeClass('success')
.addClass('error');
},
success : function(element) {
element.text('OK!').addClass('valid').closest('.control-group')
.removeClass('error').addClass('success');
}
需添加样式:
label.valid {
width: 24px;
height: 24px;
background: url(../i/valid.png) center center no-repeat;
display: inline-block;
text-indent: -9999px;
}
label.error {
font-weight: bold;
color: red;
padding: 2px 8px;
margin-top: 2px;
/** here to make the text in the same line of control*/
display: inline-block;
}注意display: inline-block;这个样式是我加的,其默认的提示文本是放在验证元素下一行,加了这一行后就变成一行了
图片资源:
当然html中则不应该再添加提示元素了
<span class="help-inline">Something may have gone wrong</span>
实际效果截图:

横排效果
使用中发现的问题:
resetForm方法没有重置对应控件的成功/错误状态,虽然移除了提示文本,但是success或error样式任然保留。
url验证对texarea没有trim值,导致有空格的话就验证为错误。
参见:

