【问题标题】:jquery validator submit behaviorjquery验证器提交行为
【发布时间】:2011-05-03 15:37:13
【问题描述】:

我有一个相当大的输入表单,上面有许多 ASP.NET 验证器,大多数是 RegexVlidators。验证器在客户端工作正常,如果需要,它们会阻止回发(提交)。但是现在我们必须同时验证和显示错误,就像他们过去还必须允许回发一样。我必须用 jquery 验证器插件替换我的 RegexValidators,所以我的问题是:可以使用验证器插件来标记和显示错误但不阻止提交/回发吗?如果没有,除了自定义解决方案之外,还有什么可以用于此目的)?使用的典型验证器如下所示:

 <asp:RegularExpressionValidator 
                                ID = "ContactEMailValidator" 
                                runat = "server" 
                                ControlToValidate = "ContactEMail"
                                ErrorMessage = "Contact Email is not a valid e-mail." 
                                ValidationGroup="WorkflowsAndIneligible"
                                ValidationExpression = "^\s*\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*\s*$"
                                SetFocusOnError = "true">
                            </asp:RegularExpressionValidator>

除了验证之外,它还做许多其他事情 - 将焦点放在有问题的输入控件上,显示一个可选项卡的错误消息

【问题讨论】:

  • 别生气,但我完全听不懂你的问题。你能更明确地改述一下吗?

标签: jquery asp.net jquery-plugins


【解决方案1】:

我使用 Position Absolute 内联验证引擎来做类似的事情。它允许您完全控制错误消息,而无需在需要时阻止回发。

例如,您可以使用 showPrompt 选项在表单字段上显示错误字段,但仍允许 ajax 发布。

$('#FormFieldID').validationEngine('showPrompt', 'This a custom error msg', 'error', true)

更多信息在这里 - https://github.com/posabsolute/jQuery-Validation-Engine

编辑:只是一个快速示例,说明您如何在生产中使用它 -

    $('#submitButton').click(function(){
        $form = $('#MyForm');
        $form.validationEngine();
        if($form.validationEngine({returnIsValid:true})){
            $form.submit()
        }
    });

该示例将阻止表单提交,您可以轻松地在 else 块中构建/显示您的错误。如果您不想阻止表单提交,您可以忽略 if 语句并提交表单,并从 ValidationEngine 构建您的错误。不过,您需要为特定示例提供更多详细信息。

【讨论】:

  • 感谢您的回复和想法。您说它允许 ajax 发布,是否允许标准 ASP.NET 发布(提交)?它是否支持 RegEx 验证?
  • 我将稍微扩展一下我的示例,向您展示它如何阻止或不阻止标准提交,它实际上支持自定义正则表达式验证!
  • 谢谢。此外,您是否知道它是否允许自定义警告显示,因此它看起来像红色文本中的 ASP.NET 验证器消息,您可以使用标签(对于受损用户)?
  • 您应该能够轻松地使用 css 自定义框的外观,我不确定您如何实现制表符,但我确定可以做到。
  • 基本上我只需要为那个红色标签分配特定的 css 类。
猜你喜欢
  • 2011-05-08
  • 1970-01-01
  • 2014-09-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多