jQuery Validation Plugin提示修改为气泡使用bootstrap

我使用的是 jQuery Validation Plugin - v1.11.1,消息提示修改为div,效果图:

,附上修改代码:

1、修改unhighlight方法:

unhighlight : function (e, i, s) {

"radio" === e.type ? this.findByName(e.name).removeClass(i).addClass(s) : t(e).removeClass(i).addClass(s);

if ($("[for=‘" + e.id + "‘]") && $(e).hasClass("valid")) {

$("[for=‘" + e.id + "‘]").hide();

}

}

2、添加获取绝对定位位置方法:

getAbsolutePos : function (el) {

var sl = 0,

st = 0;

if (el.scrollLeft && el.scrollTop) {

sl = el.scrollLeft;

st = el.scrollTop;

}

var r = {

x : el.offsetLeft - sl,

y : el.offsetTop - st

};

if (el.offsetParent) {

var tmp = this.getAbsolutePos(el.offsetParent);

r.x += tmp.x;

r.y += tmp.y;

}

return r;

},

3、添加滚动提示跟随滚动和隐藏提示方法

scrollLocation : function (vform) {

function getAbsolutePos(el) {

var sl = 0,

st = 0;

if (el.scrollLeft && el.scrollTop) {

sl = el.scrollLeft;

st = el.scrollTop;

}

var r = {

x : el.offsetLeft - sl,

y : el.offsetTop - st

};

if (el.offsetParent) {

var tmp = getAbsolutePos(el.offsetParent);

r.x += tmp.x;

r.y += tmp.y;

}

return r;

}

//滚动

var ct = document.body.scrollTop;

var ceng = $(this.currentForm).find(".in");

window.onscroll = function () {

var st = vform != "" ? document.body.scrollTop : 0;

var input = ceng.find("div > .error");

input.each(function (n) {

var p = getAbsolutePos(this);

var lt = 0;

if ($("[for=‘" + this.id + "‘]").text().length > 15) {

lt = 62

} else {

lt = 42;

}

$("[for=‘" + this.id + "‘]").css("top", (p.y + st - lt) + "px");

});

}

//隐藏

$(".modal-backdrop").click(function () {

var input = $("div > .error");

input.each(function (n) {

$(this).removeClass("error");

$(this).addClass("valid");

$("[for=‘" + this.id + "‘]").hide();

});

});

ceng.find("[aria-hidden=‘true‘]").click(function () {

var input = ceng.find("div > .error");

input.each(function (n) {

$(this).removeClass("error");

$(this).addClass("valid");

$("[for=‘" + this.id + "‘]").hide();

});

});

},

4、修改showLabel方法:

showLabel : function (e, i) {

var ceng = $(this.currentForm).find(".in");

this.scrollLocation();

var st = ceng && ceng[0] ? document.body.scrollTop : 0;

var p = this.getAbsolutePos(e);

var s = $("[for=‘" + this.idOrName(e) + "‘]");

var lt = 0;

var lft = 0;

if (i.length > 15) {

lt = 62;

lft = -20;

} else {

lft = e.offsetWidth / 3;

lt = 42;

}

if (s != null && s[0] != null) {

//修改提示内容

s.children().eq(2).html(i)

//重置位置

s.css("top", (p.y + st - lt) + "px");

$(s).show();

return false;

}

s.length ? (s.removeClass(this.settings.validClass).addClass(this.settings.errorClass), s.children().eq(2).html(i)) :

(s = t("<" + this.settings.errorElement + ">").attr("style", "position:absolute;z-index:" + ((ceng && ceng[0] ? ceng.css("zIndex") : 0) + 100) + ";top:" + (p.y - lt + st) + "px; left:" + (p.x + lft) + "px; display: block;").addClass("popover
fade top in").attr("for", this.idOrName(e)).addClass(this.settings.errorClass).html(‘<div class="arrow"></div><h3 class="popover-title" style="display: none;"></h3><div class="popover-content">‘ + i + ‘</div>‘ || ""), this.settings.wrapper && (s = s.hide().show().wrap("<"
+ this.settings.wrapper + "/>").parent()), this.labelContainer.append(s).length || (this.settings.errorPlacement ? this.settings.errorPlacement(s, t(e)) : $(document.body).append(s))),

!i && this.settings.success && (s.text(""), "string" == typeof this.settings.success ? s.addClass(this.settings.success) : this.settings.success(s, e)),

this.toShow = this.toShow.add(s);

},

5、修改defaultShowErrors 方法,添加注册提示滚动和隐藏方法

defaultShowErrors : function () {

var t,

e;

for (t = 0; this.errorList[t]; t++) {

var i = this.errorList[t];

this.settings.highlight && this.settings.highlight.call(this, i.element, this.settings.errorClass, this.settings.validClass),

this.showLabel(i.element, i.message)

}

< span style = "background-color: rgb(255, 0, 0);" > this.scrollLocation();

if (this.errorList.length && (this.toShow = this.toShow.add(this.containers)), this.settings.success)

for (t = 0; this.successList[t]; t++)

this.showLabel(this.successList[t]);

if (this.settings.unhighlight)

for (t = 0, e = this.validElements(); e[t]; t++)

this.settings.unhighlight.call(this, e[t], this.settings.errorClass, this.settings.validClass);

this.toHide = this.toHide.not(this.toShow),

this.hideErrors(),

this.addWrapper(this.toShow).show()

},

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-06 20:26:15

jQuery Validation Plugin提示修改为气泡使用bootstrap的相关文章

表单验证的validate.js插件---jQuery Validation Plugin

早上在公交车上看了一个关于慕课网的教程<表单验证的validate.js插件---jQuery Validation Plugin>,正好可以用到自己近期开发简易微博的注册页面和登录页面,插件全名叫jquery.validate.js,在引入jquery.validate.js之前要先将jquery.js引入.这个插件主要用于表单的验证,用户在注册和登录时体验十分不错!由于自己只了解关于validate的皮毛,只会简单的应用rule规则和message自定义提示,事实上,validate还有其

jQuery Validation Plugin

index.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"

jQuery Validation Plugin使用过程中需要注意的地方

1.是针对Form表单的校验,也就是说一定要是form对象才能调用validate方法 2.默认情况下,表单提交的时候才会触发校验,比如:$("form").submit()或者点提交按钮type=submit.为了改变触发校验方式,可以调用Validator对象的form()方法来手动触发校验. 3.调用Validator的valid()方法来判断校验是否通过,resetForm()方法可以重置表单. 4.只读(readonly)元素是无法应用校验规则的 4.菜鸟教程:http://

JQuery 表单验证--jquery validation

jquery validation,表单验证控件 官方地址 :http://jqueryvalidation.org/ jquery表单验证 默认值校验规则 jquery表单验证 默认的提示 1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 <title>jQuery validatio

jQuery Validation remote的缓存请求

不知大家有没有遇到,用jQuery Validation(本文讨论的版本为jQuery Validation Plugin 1.11.1)用remote方式做校验时,如果验证元素的值保持一致,进行多次验证时,第二次(含)请求并未发出,即沿用第一次远程调用的验证结果(即缓存.使用第一次请求的结果). 经常情况下,我们希望浏览器每次都去请求后台作验证的.于是作了以下尝试. >像ajax请求那样加上cache : false 尝试的结果是无效的. >在请求的URL上加时间戳 尝试的结果是无效的. &

jQuery插件——Validation Plugin表单验证

jQuery表单验证插件:https://plugins.jquery.com/tag/validate/ jQuery Validation插件是最常用的插件之一:http://jqueryvalidation.org/ 一.基本API rules里面的“username”是input中的“name”,不是“id”. 表单验证,主要是俩:一是规则,二是提示信息 当在使用validate插件的时候: 使用validate()方法的时候将debug设置为true,那么表单不会提交,只进行检查,调试

jquery插件,表单验证validation plugin的使用

笔记: 一.首先引入插件 <script type="text/javascript" src="js/jquery-1.10.0.js" ></script> <script type="text/javascript" src="js/jquery.validate-1.13.1.js" ></script> 列子:一个简单的登录表单验证 1 <form id=&quo

JQuery实现感应鼠标弹出气泡框悬停提示的js特效

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

jquery.validation.js 表单验证

jquery.validation.js 表单验证 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuery plugin: Validation 使用说明 一导入js库 <script src="../js/jquery.js" type="text/javascript"></script> <script src="../js/jq