jQuery Validate 修改错误显示样式为tooltip
2017-05-18 11:08
489 查看
直接上代码:
需要的j下载的Js有
先来看看原本的样子:
demo.html
现在我们要把错误的样式和位置做修改
1.错误信息的提示格式js
好了把上面几个创建的引入到demo.htm中去,运行效果
有些不足的地方,自行完善了
需要的j下载的Js有
<script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.validate.min.js"></script> <script type="text/javascript" src="js/jquery.metadata.js"></script>
先来看看原本的样子:
demo.html
<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.validate.min.js"></script> <script type="text/javascript" src="js/jquery.metadata.js"></script>
<script type="text/javascript">
//中文字两个字节
jQuery.validator.addMethod(
"maxlength",
function(value, element, param) {
var length = value.length;
for(var i = 0; i < value.length; i++){
if(value.charCodeAt(i) > 127){
length++;
}
}
return this.optional(element) || (length <= param);
},
$.validator.format("请确保输入的值在{0}个字节以内(一个中文字算2个字节)")
);
//非中文
jQuery.validator.addMethod(
"isNoChinese",
function(value, element) {
var length = value.length;
for(var i = 0; i < value.length; i++){
if(value.charCodeAt(i) > 127){
length++;
}
}
return this.optional(element) || (length == value.length);//成立则返回成功,否则输出下面错误信息
},
$.validator.format("输入不允许存在中文")
);
$(function(){
$("#myform").validate();
});
</script>
</head>
<body>
<form id="myform" method="post" action="">
<input type="text" class="{required:true,maxlength:19,isNoChinese:true,messages:{required:'请输入内容'}}"/></br>
<p>
<label for="myname">用户名:</label>
<!-- id和name最好同时写上 -->
<input id="myname" name="myname" class="required" />
</p>
<p>
<label for="email">E-Mail:</label>
<input id="email" name="email" class="required email" />
</p>
<p>
<label for="password">登陆密码:</label>
<input id="password" name="password" type="password"
class="{required:true,minlength:5}" />
</p>
<p>
<label for="confirm_password">确认密码:</label>
<input id="confirm_password" name="confirm_password" type="password"
class="{required:true,minlength:5,equalTo:'#password'}" />
</p>
<p>
<input class="submit" type="submit" value="立即注册" />
</p>
</form>
<body>
</html>
现在我们要把错误的样式和位置做修改
1.错误信息的提示格式js
messages_cn.js
$.extend($.validator.messages, { required: "该内容必输", remote: "请修正该字段", email: "请输入正确格式的电子邮件", url: "请输入合法的网址", date: "请输入合法的日期", dateISO: "请输入合法的日期 (ISO).", number: "请输入合法的数字", digits: "只能输入整数", creditcard: "请输入合法的信用卡号", equalTo: "请再次输入相同的值", accept: "请输入拥有合法后缀名的字符串", maxlength: $.validator.format("请输入一个长度最多是 {0} 的字符串"), minlength: $.validator.format("请输入一个长度最少是 {0} 的字符串"), rangelength: $.validator.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"), range: $.validator.format("请输入一个介于 {0} 和 {1} 之间的值"), max: $.validator.format("请输入一个最大为 {0} 的值"), min: $.validator.format("请输入一个最小为 {0} 的值") });2.创建tooltip.js用于操作显示错误的位置
$.validator.setDefaults({ submitHandler:function(form){ form.submit();//提交时拦截 }, errorElement:'div', errorPlacement: function(error, element) { error.addClass('tooltip tooltip-inner arrow-left'); if (element.is(":radio")){ error.appendTo(element.parent().next().next()); }else if (element.is(":checkbox")){ error.appendTo(element.next()); }else{ element.after(error); } var pos = $.extend({}, element.offset(), { width: element.outerWidth() , height: element.outerHeight() }), actualWidth = error.outerWidth(), actualHeight = error.outerHeight(); if((pos.top - actualHeight)<0){actualHeight=0;pos.width+=10;}//如果输入框距离顶端为0情况把提示放右边 if(element.parents(".blockPage").attr("class")=="blockUI blockMsg blockPage"){//如果是弹出框的,那么设置如下 error.css({display:'block',opacity:'0.6' ,left:300,top:pos.top - $(document).scrollTop() - actualHeight - 100, "border-left": '0px'}); } else if (element.is(":radio")){//类型为radio的显示如下 error.css({display:'block',opacity:'0.6',top: pos.top - actualHeight, left: pos.left + pos.width / 2 }); }else{//其他均为以下显示 error.css({display:'block',opacity:'0.6',top: pos.top - actualHeight, left: pos.left + pos.width-10 }); } }, highlight: function(element, errorClass) { //高亮显示 $(element).addClass(errorClass); $(element).parents('li:first').children('label').addClass(errorClass); }, unhighlight:function(element, errorClass){ $(element).removeClass(errorClass); $(element).parents('li:first').children('label').removeClass(errorClass); } });3.创建错误显示样式validate.css
input.error { border: 1px solid red !important; } label.error { background:url("../images/unchecked.gif") no-repeat 0px 0px; padding-left: 16px; padding-bottom: 2px; font-weight: bold; color: red; } span.error { background:url("../images/unchecked.gif") no-repeat 0px 0px; padding-left: 16px; padding-bottom: 2px; font-weight: bold; color: red; } label.checked { background:url("../images/checked.gif") no-repeat 0px 0px; } .tooltip { position: absolute; z-index: 10200; display: block; visibility: visible; padding: 5px; font-size: 11px; opacity: 0; filter: alpha(opacity=0); } .tooltip-inner { max-width: 300px; padding: 0px 8px; color: #ffffff; text-align: center; text-decoration: none; background-color: #000000; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 6px; } form input.error{ color:#F00; border: 1px solid #CE7979; background:#FFF7FA; } form label.error{ color:#F00; } .arrow-left { border-bottom: 10px solid #000000; border-left: 10px solid #ffffff; }
好了把上面几个创建的引入到demo.htm中去,运行效果
有些不足的地方,自行完善了
相关文章推荐
- jquery validate 修改错误信息的显示位置
- jquery validate自定义错误消息的显示方式
- jquery.validate 以alert方式显示错误方法
- 【原创】Jquery.validate.js指定错误显示位置
- jquery validate提示错误信息位置修改
- jQuery Validate错误用sweet alert显示 + Boostrap tooltip 表单验证示例
- YII中用jquery修改CheckBoxList的显示样式
- jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
- JQuery扩展插件Validate―4设置错误提示的样式
- 修改Struts2表单错误提示的显示样式
- JQuery扩展插件Validate—4设置错误提示的样式
- 0.jquery 验证,以及显示出现错误的地方 1.当用jquery.validate与ajax时候特别小心在每句后面的逗号问题,如果不需要的地方加上逗号会造成页面无法进入js验证
- JQuery扩展插件Validate―4设置错误提示的样式
- jquery validate提示错误信息位置修改
- JQuery Validate验证显示错误提示位置
- 修改jquery的remote让前段显示服务器错误信息
- jquery.validate 自定义错误消息的显示方式--4
- jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示
- 关于jquery validate中radio形式提示框显示位置错误
- [轉]jquery.validate 以alert方式显示错误方法