Jquery验证:如果焦点丢失在提交按钮上,如何防止模糊(焦点移出)验证



我有一个文本框。我不希望在文本框中输入无效值后单击提交按钮时发生模糊验证。

如果我模糊到任何其他控件,那么我确实希望验证发生。

Windows [desktop]窗体允许指定一个控件为" no-causing-validation "。

是否有可能在jquery验证中指定一个控件为"no-cause-validation"?

是的,这是可能的,但你必须在代码中完成,而不是以声明的方式。

要做到这一点,你必须覆盖事件的'on'处理程序-在这种情况下blur (focusout)

下面是jsfiddle上的一个示例,验证如下代码

$("form").validate({
    onfocusout: function (element, event) {
        if (element.id === "fname") {
            this.element(element);
        }
    }
});

与这样的HTML

<form>
    <label for="fname">First Name</label>
    <input name="fname" id="fname" class="required number">
    <label for="sname">Last Name</label>
    <input name="sname" id="sname" class="required number">
    <input type="submit" />
</form>

这是一个基本的例子,在blur上验证一个字段,而不是另一个字段。您可以进一步检查想要验证的字段上的属性,但是一般的方法是

  1. 用函数
  2. 覆盖onfocusout(或onkeyup等)
  3. 在该函数中,对于您想要验证的字段,调用element(…)

在这里讨论这个- https://github.com/jzaefferer/jquery-validation/issues/564

最新更新