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.四.再再复杂一点 ...
随机推荐
- zb的生日(暴搜dfs)
zb的生日 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 今天是阴历七月初五,acm队员zb的生日.zb正在和C小加.never在武汉集训.他想给这两位兄弟买点什么 ...
- 命令行分析java线程CPU占用
1.使用top命令找出占用cpu最高的JAVA进程pid号 2. 找出占用cpu最高的线程: top -Hp -n 1 3. 打印占CPU最高JAVA进程pid的堆栈信息 jstack pid &g ...
- MyEclipse 注册码
MyEclipse 注册码和大家共享一下! 一:MyEclipse_6.0.1GA_E3.3.1_FullStackInstaller注册码 Subscriber:javp Subscription ...
- c保存lua函数
使用下面方式可保存lua任何值,目前只实现fucntion的保存,且无参数.如果需要实现参数,可自己扩展: 可实现下面方式: CFun( lua_fun ) -- okCFun( function() ...
- notepad++和gcc搭建语言环境
1,工具: Notepad++:http://pan.baidu.com/s/1sjlXl6X MinGW:http://pan.baidu.com/s/1qWyQ3lq 2,安装notepad++ ...
- HTML之学习笔记(二)颜色体系
html页面的颜色表示法有三种:英文表示,16进制表示和10进制表示.颜色通过三原色即红.绿.蓝三种按比例混合而成,如红色的10进制表示为255,0,0,即按照红色.绿色.蓝色的格式,权值取0~255 ...
- Asp.net MVC5中Html.DropDownList的使用
一.静态下拉列表项的绑定 在下拉列表中绑定静态项,我们可以通过 SelectListItem 的集合作为数据源的下拉列表. @Html.DropDownList("dropRoles&quo ...
- JQ 操作样式,背景切换
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C#中Spli、正则表达式分解字符串详解
一.String.Split方法提供了如下6个重载函数: 名称 说明 String.Split (Char[]) 返回包含此实例中的子字符串(由指定 Char 数组的元素分隔)的 String 数组. ...
- java菜鸟篇<四> ZTree入门篇
今天准备入手ZTree,于是在百度上搜了搜,找到了开源网址和一些大神们的教程,于是乎下午开始了组织树(ZTree)的练习 初步完整的作品是这个样子的: 1.咱们要去这个工具的开源网里找下载的东西: ( ...