jQuery验证扩展 - 警告,忽略选项,特定于操作

时间:2012-04-06 11:10:57

标签: jquery validation jquery-validate

我喜欢jQuery验证的简单性和可扩展性。在我最近的一些使用案例中,它似乎达到了极限。我缺少一些功能。我的问题:是否有一个支持这些功能的开源库,或者开发中有什么值得注意的东西?或者,您是否有关于如何扩展/使用验证框架来涵盖这些功能的任何明智提示?

错过的功能:

  • 对于某些字段,我需要定义“警告”规则而不是错误。如果它们评估为false,则应显示一条消息,但它应包含允许用户关闭规则的链接“ignore”(类似于MS Word的拼写检查程序,用户可以选择忽略拼写错误)。如果验证阻止了表单的发送,理想情况下,当用户单击“忽略”时,表单会立即发送。

  • 规则应该取决于我想用表单执行的操作。虽然对于一个动作,但不需要字段,但可能需要它们执行另一个动作。

作为两种情况的示例,请使用“发送电子邮件”表单:

  • “subject”字段不一定是必需的,但如果它是空的,则用户可能错过了它。理想情况下,验证框架会阻止表单的发送,并显示一条消息,例如“您错过了主题。忽略”。通过单击“忽略”,将禁用该消息并发送表单。
  • 发送电子邮件绝对需要“收件人”字段。但是,如果表单提供了“保存草稿”按钮,则不应强制用户填写此字段以保存草稿。

1 个答案:

答案 0 :(得分:1)

对于第二名来说,这非常简单。您可以通过每个按钮调用一个完成时提交的功能,而不仅仅是提交。在该函数中,您设置一个jquery变量来告诉您它来自哪个按钮,并在jQuery.validator.addClassRules()调用的一部分中使用该变量的内容来确定是否应用验证要求。第一个是棘手的,但您可以设置验证文本 - 这意味着您应该能够在其中包含一个链接。让链接触发一个函数,该函数再次更改apply / not-apply逻辑使用的变量(并可能重新提交 - 或者,如果您有一个包含多个这样的页面,则重新验证(从而删除错误消息)并允许他们稍后用不同的按钮提交)。

关于addClassRules可能的样子的快速示例。

jQuery.validator.addClassRules("toField",
{
    required: {
        depends: function(element)
        {
            return $submitNotSave;
        }
    }
});