我正在使用ASP.NET MVC构建一个站点,并且正在使用jQuery validate unobtrusive库。我想知道是否有办法挂钩显示验证消息的事件,例如在用户输入无效内容的位置(与点击提交按钮的瞬间相反)。
我想要这样做的原因是因为我正在设置我的错误消息,例如出现错误的字段上方的迷你弹出窗口 - 即使用绝对定位。由于单个字段可能具有各种不同的验证错误,我希望能够正确设置字段的位置以考虑消息的可变高度。我还需要处理这个事件,这样我就可以在输入元素周围应用一个红色边框的类。
答案 0 :(得分:7)
这里有一个很棒的脚本:https://gist.github.com/beccasaurus/957732/为jQuery.validate中的不同事件设置钩子。它允许您绑定到一堆不同的事件,在您的情况下它将如下所示:
$(function () {
$('form').addTriggersToJqueryValidate();
$('form').bind("elementValidation", function (event, element, result) {
console.log("Something is invalid");
});
})
非常方便!
答案 1 :(得分:0)
当用户使用
移动到表单中的下一个元素时,您可以验证并形成元素$("form#myformid").validate().element("#ModelObject_NameofField");
并使用每个元素的错误放置,如上一个答案所示
jquery - how to use errorPlacement for a specific element?
你的弹出窗口<div/>
应随其中的文字一起增长,所以你只需要将元素旁边的左下角或左下角锚定起来。