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错误的更多相关文章

  1. jquery.validate.unobtrusive.js实现气泡提示mvc错误

    改写jquery.validate.unobtrusive.js实现气泡提示mvc错误 个人对于这个js.css不是很擅长,所以这个气泡提醒的样式网上找了下,用了这个http://www.cnblog ...

  2. 改写jquery.validate.unobtrusive.js实现气泡提示mvc错误

    个人对于这个js.css不是很擅长,所以这个气泡提醒的样式网上找了下,用了这个http://www.cnblogs.com/wifi/articles/2918950.html当中的第一种写法. 对于 ...

  3. jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)

    最近在学习asp.netMVC,发现其中的验证方式书写方便快捷,应用简单,易学好懂. 验证方式基于jQuery的validate 验证方式,也可以说是对jQuery validate的验证方式的扩展, ...

  4. .net MVC内置js验证 jquery.validate.unobtrusive.js重置验证操作(备忘,找了很多次了)

    (function ($) { $.validator.unobtrusive.parseDynamicContent = function (selector) { //use the normal ...

  5. ASP.NET MVC异步验证是如何工作的03,jquery.validate.unobtrusive.js是如何工作的

    在上一篇"ASP.NET MVC异步验证是如何工作的02,异步验证表单元素的创建"中了解了ASP.NET异步验证是如何创建表单元素的,本篇体验jquery.validate.uno ...

  6. jquery.validate.unobtrusive.js插件作用

    在 ASP.NET MVC 中启用 Unobtrusive JavaScript 功能,可以在运行时由服务器端根据Model中设置的验证规则,自动生成客户端验证js代码(结合jquery.valida ...

  7. 360浏览器下jquery.validate.unobtrusive的日期验证问题

    今天在招聘频道(job.cnblogs.com)遭遇这样一个问题——在360浏览器下,在一个表单验证中,虽然输入了有效的日期,却总是提示日期格式错误,见下图: 而在Chrome/Safari/Fire ...

  8. MVC的验证 jquery.validate.unobtrusive

    jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js) 2013-07-22 19:07 4568人阅 ...

  9. MVC自定义验证 jquery.validate.unobtrusive

    MVC的验证 jquery.validate.unobtrusive 阅读目录 一.应用 二.验证规则 1.一.简单规则 2.二.复杂一点的规则 3.三.再复杂一点的规则(正则) 4.四.再再复杂一点 ...

随机推荐

  1. FTA

    FTA - 维基百科,自由的百科全书 FTA 维基百科,自由的百科全书   跳转至: 导航. 搜索 FTA可以指: 自由贸易协定(Free Trade Agreement) 自由贸易区(Free Tr ...

  2. [Oracle] Data Guard 系列(5) - 创建逻辑备库

    在创建逻辑备库之前,必须得先创建物理备库,关于如何创建物理备库,请参考<Data Guard 系列(4) - 在不停主库的情况下创建物理备库>. 1. 在物理备库上停止日志应用服务 SYS ...

  3. 1、elasticsearch简介

    1.elasticsearch简介 中文帮助文档地址:http://es.xiaoleilu.com/ • Elasticsearch是一个基于Lucene的实时的分布式搜索和分析引擎.设计用于云计算 ...

  4. 使用 apache ant 轻松实现文件压缩/解压缩(转)

    原文地址:http://blog.csdn.net/irvine007/article/details/6779492 maven配置ant包: <dependency> <grou ...

  5. 《Qt编程的艺术》——5.1 手动布局

    在传统的GUI设计中,每个控件(Widget)都要手动地绑定在窗口之上的一个点上(也就是说,这个控件被指定成了给定GUI元素的父对象),同时还要指定这个控件的高度和宽度.作为所有图形元素的基础类,QW ...

  6. hdu1106 字符串水题strtok()&&strchr()&&sscanf()+atoi()使用

    字符串的题目 用库函数往往能大大简化代码量 以hdu1106为例 函数介绍 strtok() 原型: char *strtok(char s[], const char *delim); 功能: 分解 ...

  7. 【计算几何初步:多边形中心】【HDU1115】Lifting the Stone

    一.质点系重心公式 x=(x1*m1+x2*m2+x3*m3.....xn*mn)/M  (M=m1+m2+m3+m4...+mn) 二.三角形重心 可直接求得,但在多边形剖分中 各三角形的质点的质量 ...

  8. RDLC报表系列(一) 简单的动态数据绑定和配置

    RDLC系列链接 RDLC报表系列(一) 简单的动态数据绑定和配置  RDLC报表系列(二) 行分组 RDLC报表系列(三) 总计和折叠 RDLC报表系列(四) 矩阵 RDLC报表系列(五) 简单的图 ...

  9. c语言中的经典算法

    c语言经典排序以及查找方法 冒泡排序 #include <stdio.h> int main() { int i, j, t, a[11]; /*定义变量及数组为基本整型*/ printf ...

  10. WebService应用一例,带有安全验证

    1.创建WEB项目,添加WEB服务WebService1.asmx,代码如下: using System; using System.Collections.Generic; using System ...