由于几天我已经对我的头撞,尝试了所有想法(nooby或不),但似乎我无法得到它的工作。Html.ValidationMessageFor图像和工具提示
我试图归档的是: 而不是原始的验证消息我想只显示带有jQuery工具提示的图标。 此外,解决方案应易于维护......意味着在需要验证的每个视图上都可用。
我试过到目前为止:
@Html.ValidationMessageFor(Function(m) m.Password, Nothing, New With {.class = "ValWarn"})
CSS:
.ValWarn {content: url(images/Warning.png);margin: 0.1em;}
结果:image 1
问题:我不能指定确认消息,其标题。
测试#20357
<div id="divhiddenval" style="display: none;">
@Html.ValidationMessageFor(Function(m) m.Password)
</div>
@Html.PasswordFor(Function(m) m.Password)
<div id="[email protected](Function(m) m.Password)" style="display: inline;"></div>
的Javascript:
$(document).ready(function() {
fullValidation();
$('form').submit(function() {
if (! $(this).valid()) {
fullValidation();
return false;
}
});
$('input').keydown(function() {
singleValidation(this.id);
tooltip();
});
});
function singleValidation(_id) {
var _err = $("span[data-valmsg-for='" + _id + "']");
if ($(_err).text() != "") {
$("#valdiv_" + $(_err).attr("data-valmsg-for")).html("<span class='ValWarn tooltip' title='<span class="warncolor">" + $(_err).text() + "</span>'></span>");
} else {
$("#valdiv_" + $(_err).attr("data-valmsg-for")).html("");
}
}
function fullValidation() {
$("#divhiddenval span[data-valmsg-for]").each(function() {
singleValidation($(this).attr("data-valmsg-for"));
})
tooltip();
}
问题:这是一种矫枉过正的来电提示()各一次。它也不能在第一次按键时使用。它在我移出输入并再次移入输入时起作用。所以按键不会开火,直到失去焦点一次。
下一次尝试: 我在互联网上的某个地方找到了ValidationHTMLMessageFor Extension。相当接近,但到目前为止... 我的应用程序是全球化的,所以我将被迫在每个资源字符串之前添加图像作为dataanotations它只需要静态字符串。此外,工具提示问题也不会得到解决。
因此,根本......我不能想到任何其他方法,将工作,因为我想要它。 在另一方面,我不能相信,微软则让公司很难通过我们自己的:(
如果有人请能帮助我解决这个问题?
早上好,感谢您分享的链接。 两个问题,我这个解决方案遇到的问题。 1.如果我有一个属性的多个验证规则?让我们说它是必需的,也有一个数据val长度?该链接中描述的方法没有赶上当前的错误。所以,如果我有3个长度设置了密码,则提示仍然会显示所需的错误,而不是长度误差。 2.问题......这个人是最讨厌...如果我不使用ValidationMessageFor的所有属性我得到一个“unexcpected令牌U”从unonbstutive JS。最讨厌的东西tbh – GeekByChoiCe 2015-04-03 05:43:25