2011-08-23 39 views
1

海蘭,如何從ASP.Net MVC的窗體中使用javascript獲取驗證消息的值?

在aspx頁面我的ASP.NET MVC應用程序,我設置

<% Html.EnableClientValidation(); %> 

到我的表格上啓用客戶端驗證。所以,我輸入我有這樣的代碼來聲明電子郵件texbox和它的驗證

<%: Html.TextBoxFor(model => model.Email)%> 
<%: Html.ValidationMessageFor(model => model.Email)%> 
<%: Html.ValidationSummary(true)%> 

在這個模型中,我宣佈了電子郵件屬性,如:

[Required(ErrorMessage = "Required email")] 
[DisplayName("Email *")] 
[RegularExpression("^[a-z0-9+\\+-]+(\\.[a-z0-9+\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,4})$", ErrorMessage = "Invalid email.")] 
public string Email { get; set; } 

的問題是,我怎樣才能得到(使用客戶端腳本)在頁面上顯示錯誤消息的值?

所以,當我按下一些按鈕,我可以看到如果表單是否有效,然後我可以顯示加載gif。

非常感謝。

傑夫

更新

HTML源代碼:

<tr> 
    <td class="editor-field"> 
     <input id="Email" name="Email" type="text" value="" /> 
    </td> 
</tr> 
<tr> 
    <td class="editor-field-validation"> 
    <span class="field-validation-valid" id="Email_validationMessage"></span> 
    <div class="validation-summary-valid" id="validationSummary"><ul><li style="display:none"></li> 
</ul></div> 
    </td> 
</tr> 
+0

您能否提供瀏覽器將接收的HTML源代碼,以及您的JavaScript代碼如何獲取驗證消息? – reporter

+1

你不能依賴於cleint方面的驗證,你需要有一個單獨的客戶端驗證COS你的客戶可以使用不同的工具,如Fiddler – Baz1nga

+0

@reporter,很容易僞造請求,我試過創建'Email_validationMessage'的值,但所有我可以得到的是'未定義'..所以這是我的問題的重點,我怎樣才能得到驗證信息 –

回答

1

錯誤消息(文本)的值可能會顯示在股利或跨度。只需檢查該字段的id(例如使用FireBug)。然後,當你需要它時,你將能夠獲得這個價值。

因爲我明白你在JavaScript中調用驗證manualy,是嗎?

+0

是的,非常感謝,我已經安裝了firebug,並且檢查了驗證消息的id,當它被設置時,我得到了這個$(「span#Email_validationMessage」)。html()的span值, '裝載可以顯示。 –

相關問題