【问题标题】:Trouble Attaching Call Back to Unobtrusive Validation Show Error无法将回调附加到不显眼的验证显示错误
【发布时间】:2013-04-24 15:53:11
【问题描述】:

我无法将回调附加到 jquery 不显眼的验证。我想要做的是在任何时候显示字段验证错误时隐藏一条信息性消息。它们都占据页面上的相同区域。我不知道如何将回调附加到显示错误方法。如果您调用 validate,我有一个可以工作,但是在触发字段更改之前会显示错误消息。

这是一个演示我的问题的 jsfiddle。 http://jsfiddle.net/K6NcF/4/

这是仅在调用 validate() 时运行的回调。

$('#theForm').bind('invalid-form.validate',function(){
    $('.info-box').hide();
});

任何帮助将不胜感激。

【问题讨论】:

  • 我不是 100% 确定如何使用 unobtrusive 来做到这一点,但只要使用 jQuery Validate 插件,就有一大堆回调函数可以使用。请参阅文档:docs.jquery.com/Plugins/Validation/validate#toptions
  • 我在您的 jsFiddle 中看到的另一个问题; <form id="1"> - 以数字开头的id 可能是也可能不是有效的 HTML,但这绝对不是一个好习惯。见:stackoverflow.com/a/79022/594235
  • 是的,问题是我不相信我可以使用任何这些回调,因为它们不会导致在用户编辑字段时显示验证消息。它尝试绑定回调以显示错误但没有成功。对 id 的调用很好,虽然这不是问题,但我不知道为什么我的 go to 是 1 但我更新了它。
  • highlightunhighlight 与每个字段的验证同步触发。例如,如果您保留 onkeyup 选项默认值,那么每次击键都会触发 highlightunhighlight 回调。 (默认情况下,这些更新元素上的 valid/error 类。See source code for default functions。)

标签: jquery jquery-validate unobtrusive-validation


【解决方案1】:

你可以在像这样使用不显眼时访问高亮和取消高亮回调

// grab a reference to the validator instance
var v = $('form').validate();

// reference the settings property, and the highlight function
var originalHighlight = v.settings.highlight;

你可以用你的东西覆盖它,或者下面的例子展示了一种添加你自己的功能而不覆盖那里的方法。

var v = $('#theForm').validate();

var originalHighlight = v.settings.highlight;
var originalUnHighlight = v.settings.unhighlight;

v.settings.highlight = function(element, errorClass, validClass)
{
  console.log('doing my stuff here');
  $('.info-box').hide();
  originalHighlight.call(v, element, errorClass, validClass);
}

v.settings.unhighlight = function(element, errorClass, validClass)
{
  console.log('undoing my stuff here');
  $('.info-box').show();
  originalUnHighlight.call(v, element, errorClass, validClass);
}

在这里摆弄http://jsfiddle.net/K6NcF/8/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 2016-10-13
    • 1970-01-01
    相关资源
    最近更新 更多