1

我在 MVC 应用程序中启用了 jQuery 验证选项,如下所示。

$.validator.setDefaults({
    onkeyup: false,
    onfocusin: false
});

这意味着验证将发生在焦点之外。在以下情况下,我在这里遇到了一个问题。

  1. 用户输入了无效数据并提交了表单(将显示验证错误)
  2. 用户更正了数据并单击了提交按钮,而没有从当前文本框中移动焦点。在这一步中,提交将不起作用,只会清除验证错误。如果数据正确,我需要在这里提交表格。

我为此http://jsfiddle.net/8r47E/15/创建了一个 jsfiddle, 请分享您对此的想法。

4

1 回答 1

0

没有这样的事情onfocusin:。你的意思是onfocusout:

您也没有使用jsFiddle中的任何一个:

    debug: false,
    focusInvalid: false,
    onkeyup: false,
    onclick: false,

这是你想要的吗?

    debug: false,
    focusInvalid: false,
    onkeyup: false,
    onclick: false,
    onfocusout: false,

http://jsfiddle.net/8r47E/24/

单击此处查看详细描述每个.validate()选项的文档。

当然,您的演示对我来说似乎工作正常。我在submit没有将光标从输入端移开的情况下获得了“成功”。

我不太确定你想做什么。您描述的所需行为是几乎每个人都希望此验证能够工作,而它恰好是默认情况下的工作方式。

即使您在onfocusout设置为时遇到错误false,您仍然可以在不移动光标的情况下提交表单(更正错误后),因为插件的内置提交处理程序会再次自动检查表单的有效性。

http://jsfiddle.net/8r47E/25/

于 2012-12-09T21:57:49.993 回答