MVC3.0修改jquery.validate.unobtrusive.js实现气泡提示mvc错误
CSS部分
<style type="text/css">
.hide {display:none;}
.poptip {
position: absolute;
top: 20px;
left:20px;
padding: 6px 10px 5px;
*padding: 7px 10px 4px;
line-height: 16px;
color: #DB7C22;
font-size: 12px;
background-color: #FFFCEF;
border: solid 1px #FFBB76;
border-radius: 2px;
box-shadow: 0 0 3px #ddd;
}
.poptip-arrow {
position: absolute;
overflow: hidden;
font-style: normal;
font-family: simsun;
font-size: 12px;
text-shadow:0 0 2px #ccc;
}
.poptip-arrow em,.poptip-arrow i {
position: absolute;
left:0;top:0;
font-style: normal;
}
.poptip-arrow em {
color: #FFBB76;
}
.poptip-arrow i {
color: #FFFCEF;
text-shadow:none;
}
.poptip-arrow-top,.poptip-arrow-bottom {
height: 6px;
width: 12px;
left:12px;
margin-left:-6px;
}
.poptip-arrow-left,.poptip-arrow-right {
height: 12px;
width: 6px;
top: 12px;
margin-top:-6px;
}
.poptip-arrow-top {
top: -6px;
}
.poptip-arrow-top em {
top: -1px;
}
.poptip-arrow-top i{
top: 0px;
}
.poptip-arrow-bottom {
bottom: -6px;
}
.poptip-arrow-bottom em {
top: -8px;
}
.poptip-arrow-bottom i {
top: -9px;
}
.poptip-arrow-left {
left:-6px;
}
.poptip-arrow-left em {
left:1px;
}
.poptip-arrow-left i {
left:2px;
}
.poptip-arrow-right {
right:-6px;
}
.poptip-arrow-right em {
left:-6px;
}
.poptip-arrow-right i {
left:-7px;
}
</style>
改写jquery.validate.unobtrusive.js中的onerror方法:
//气泡错误提示
function CPos(left, top) {
this.left = left;
this.top = top;
} function GetObjPos(ATarget) {
var target = ATarget;
var pos = new CPos(target.offsetLeft, target.offsetTop); var target = target.offsetParent;
while (target) {
pos.left += target.offsetLeft;
pos.top += target.offsetTop; target = target.offsetParent
}
return pos;
}
//气泡错误提示结束
function onError(error, inputElement) { // 'this' is the form element
var container = $(this).find("[data-valmsg-for='" + inputElement[0].name + "']"),
replace = $.parseJSON(container.attr("data-valmsg-replace")) !== false; container.removeClass("field-validation-valid").addClass("field-validation-error");
error.data("unobtrusiveContainer", container);
//气泡错误提示
var pos = GetObjPos(inputElement[0]);
if (error.text().length > 0) {
if ($("[popupfor='" + inputElement[0].name + "']").length == 0) {
$(document.body).append("<div class=\"poptip\" popupfor=\"" + inputElement[0].name + "\" style=\"top: " + (pos.top + inputElement.height()) + "px;left:" + pos.left + "px;\"><span class=\"poptip-arrow poptip-arrow-top\"><em>◆</em><i>◆</i></span>" + error.text() + "</div>");
}
else {
$("[popupfor='" + inputElement[0].name + "']").contents().filter(function () {
return this.nodeType == 3;
}).replaceWith(error.text());
}
$("div[popupfor='" + inputElement[0].name + "']").show();
}
else {
$("div[popupfor='" + inputElement[0].name + "']").hide();
}
//气泡错误提示结束
if (replace) {
container.empty();
error.removeClass("input-validation-error").appendTo(container);
}
else {
error.hide();
}
}
红色的是改写部分
然后cshtml中我使用了个隐藏的div,把这个@Html.ValidationMessageFor给包起来。
.hide {display:none;}
<div class="hide">@Html.ValidationMessageFor(model => model.XXX)</div>
效果图:

MVC3.0修改jquery.validate.unobtrusive.js实现气泡提示mvc错误的更多相关文章
- jquery.validate.unobtrusive.js实现气泡提示mvc错误
改写jquery.validate.unobtrusive.js实现气泡提示mvc错误 个人对于这个js.css不是很擅长,所以这个气泡提醒的样式网上找了下,用了这个http://www.cnblog ...
- 改写jquery.validate.unobtrusive.js实现气泡提示mvc错误
个人对于这个js.css不是很擅长,所以这个气泡提醒的样式网上找了下,用了这个http://www.cnblogs.com/wifi/articles/2918950.html当中的第一种写法. 对于 ...
- jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)
最近在学习asp.netMVC,发现其中的验证方式书写方便快捷,应用简单,易学好懂. 验证方式基于jQuery的validate 验证方式,也可以说是对jQuery validate的验证方式的扩展, ...
- .net MVC内置js验证 jquery.validate.unobtrusive.js重置验证操作(备忘,找了很多次了)
(function ($) { $.validator.unobtrusive.parseDynamicContent = function (selector) { //use the normal ...
- ASP.NET MVC异步验证是如何工作的03,jquery.validate.unobtrusive.js是如何工作的
在上一篇"ASP.NET MVC异步验证是如何工作的02,异步验证表单元素的创建"中了解了ASP.NET异步验证是如何创建表单元素的,本篇体验jquery.validate.uno ...
- jquery.validate.unobtrusive.js插件作用
在 ASP.NET MVC 中启用 Unobtrusive JavaScript 功能,可以在运行时由服务器端根据Model中设置的验证规则,自动生成客户端验证js代码(结合jquery.valida ...
- 360浏览器下jquery.validate.unobtrusive的日期验证问题
今天在招聘频道(job.cnblogs.com)遭遇这样一个问题——在360浏览器下,在一个表单验证中,虽然输入了有效的日期,却总是提示日期格式错误,见下图: 而在Chrome/Safari/Fire ...
- MVC的验证 jquery.validate.unobtrusive
jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js) 2013-07-22 19:07 4568人阅 ...
- MVC自定义验证 jquery.validate.unobtrusive
MVC的验证 jquery.validate.unobtrusive 阅读目录 一.应用 二.验证规则 1.一.简单规则 2.二.复杂一点的规则 3.三.再复杂一点的规则(正则) 4.四.再再复杂一点 ...
随机推荐
- find命令笔记
find 命令: 文件查找:locate: 非实时,模糊匹配,查找是根据全系统文件数据库进行的:# updatedb, 手动生成文件数据库速度快 find: 实时 精确 支持众 ...
- |,&,<<,>>运算符
<< 位移运算符(>>相反了) /* * 题目: 2 << 3 = 10000 = 16 * 解答: 2向左移动三位,就变成了10000 * 十进制 二进制 * 2 ...
- Android项目实战-云词典
前段时间在网上看到滴答滴答的一个项目,字典文章,找到一个简单的字.整句翻译功能,词汇,但漫长的岁月项目,二手API数据不再可用,我决定使用其现有的框架来实现其功能,主要采用的技术GSON和Volley ...
- Sybase配置中文语言支持及字符集
在windows平台上,Sybase ASE15.0.7安装完成后默认语言是:英语(us_english),默认字符集为:cp850.cp850是一个西欧字符集,虽然也能使用cp850字符集保存汉字, ...
- [原创] Assistant editor 取消拖拽 binding 的 UI 元素
1. press up-right button "show the utilities" 2. press "show the Connections inspecto ...
- 增加配置Apache2 管理 SVN 访问权限
继续之前的 文章里的配置 配置Apache2 管理 SVN 一.修改配置/etc/httpd/conf.d/ subversion.conf <Location /svn/> DAV sv ...
- 龙芯3A上V8的编译与测试
使用平台: loongson3a+debian6.0.3+linux2.6.36.3+gcc4.6.3 一: V8的下载 这里V8是从其官网上使用git下载的: (1)如果没有git和git-svn需 ...
- Servlet 学习总结-2
#重定向与转发的区别 开发Web应用中会遇到从一个页面跳转到另一个页面的问题,在JSP中有两种跳转方式: 1.重定向 2.转发(转向) 重定向:首先服务器受到浏览器客户端请求之后,服务器发送新的链接到 ...
- 如何让secureCRT显示Linux的颜色
style="padding-bottom: 0px; line-height: 1.5; margin: 0px; padding-left: 0px; padding-right: 0p ...
- 初识HTML5
1, 新增canvas标签,允许通过JS在客户端完成2D绘图 2, 新增Video/Audio标签,能取代flash实现媒体播放 3, 新增本地存储功能:localStorage/sessionSto ...