jquery验证器提交行为

时间:2011-05-03 15:37:14

标签: jquery asp.net jquery-plugins

我有一个相当大的输入表单,上面有许多ASP.NET Validators,大部分都是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>

除了验证之外,它还会执行许多其他操作 - 专注于违规输入控件,显示可能出现的错误消息

1 个答案:

答案 0 :(得分: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构建错误。您需要为特定示例提供更多详细信息。