2011-05-03 46 views
0

我有一個相當大的輸入表單,其上有許多ASP.NET驗證器,大多數是RegexVlidators。驗證器在客戶端工作正常,並且如果需要的話,他們會阻止回發(提交)。但是現在我們必須同時驗證和顯示錯誤,就像以前也必須允許回發一樣。我必須用jquery validator插件替換我的RegexValidators,所以我的問題是:可以使用validator插件,因此標記並顯示錯誤,但不阻止提交/回發?如果沒有,那麼可以使用什麼,其他自定義解決方案)?在使用典型的驗證程序是這樣的:jquery驗證器提交行爲

<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> 

除了驗證它做了一些其他的東西 - 對違規輸入控件設置焦點,顯示tabbable錯誤消息

+0

不要冒犯,但我完全不明白你的問題。你能更明確地重述嗎? – 2011-05-03 15:44:28

+0

感謝您的回覆,更新。 – Victor 2011-05-03 15:49:03

回答

1

我使用的位置絕對直列驗證引擎做類似的事情。它允許您完全控制錯誤消息,而不必在需要時阻止回發。

例如,您可以使用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中構建錯誤。儘管如此,您仍需要爲特定示例提供更多的細節。

+0

感謝您的回覆和一個想法。你說它允許ajax發佈,它會允許標準的ASP.NET發佈(提交)?它是否支持RegEx驗證? – Victor 2011-05-03 16:05:58

+0

我將展開我的示例,向您展示它如何阻止或不阻止標準提交,並且實際上它支持自定義正則表達式驗證! – HurnsMobile 2011-05-03 16:10:54

+0

謝謝。此外,你是否知道它是否允許警告顯示定製,因此它看起來像是紅色文本中的ASP.NET驗證器消息,並且你可以在其上標籤(對於受損用戶)? – Victor 2011-05-03 16:15:03