jquery验证:如果焦点丢失到提交按钮,如何防止模糊(焦点)验证

THX*_*138 5 jquery jquery-validate

我有一个文本框.如果在文本框中输入无效值后单击提交按钮,我不希望验证模糊.

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

Windows [桌面]表单允许将控件指定为" no-causing-validation"以用于此精确情况.

是否可以no-cause-validation在jquery验证中将控件指定为" "?

Dr *_*ard 4

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

为此,您必须覆盖事件的“on”处理程序 - 在本例中为模糊(焦点输出)

这是 jsfiddle 上的示例,验证这样的代码

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

像这样的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>
Run Code Online (Sandbox Code Playgroud)

这是一个基本示例,验证一个字段的模糊效果,而不验证另一个字段的模糊程度。您可以通过检查要验证的字段的属性来进一步采取这一点,但一般方法是

  1. 用函数覆盖 onfocousout (或 onkeyup 等)
  2. 在该函数中,对于要验证的字段,请调用 element(...)

在此讨论 - https://github.com/jzaefferer/jquery-validation/issues/564