2014-02-18 47 views
0

我想動態地創建控件的驗證。我有一個包含超過25個控件的頁面,這些控件的可見性基於類別和子類別。對於某些類別的控件是必需的,其中一些不是必需的。這是現場背後的商業邏輯。Html自定義屬性的創建和驗證

因此,我在這裏計劃的是,基於類別和子類別選擇,我打算爲所有必填字段包含一個html屬性isMandated=true。並在onblur事件將驗證其值。點擊按鈕(將頁面發佈到服務器時)我打算驗證基於isMandated屬性的所有控件。

這種方法是否正確,所有主流瀏覽器都會支持這種屬性添加?

+0

請包括嘗試的解決方案,爲什麼他們沒有工作,和預期的結果。 –

+1

如果你想要自定義屬性,那麼[使用他們的標準](http://www.w3.org/TR/html5/dom.html#embedding-custom-non-visible-data-with-the-data- * -attributes),如果你想標記一個表單控件爲強制的,不要發明你自己的屬性,使用[標準的](http://www.w3.org/TR/html5/forms.html# ATTR-textarea的要求的) – Quentin

回答

2

如果要包含其他屬性,則需要使用data-前綴。所以在你的情況下:

data-isMandated="true" 

這在所有主流瀏覽器都支持。

var isMandated = $(selector).attr("data-isMandated"); 
0

如果您的屬性是"isMandated",那麼您的頁面可能無法通過HTML驗證生效。正確的方法是創建一個自定義屬性"data-isMandated"。這種方法適用於所有的瀏覽器(我之前創建過類似的頁面,並且適用於IE7 +,FF和Chrome)。 也許會更好,將類添加到所有必填字段中,而不是屬性isMandated=true並檢查此類的所有字段。 另外,您可以使用jquery validation - plugin。它包括一些驗證規則,例如必填字段,最小/最大值,電話號碼驗證,電子郵件驗證等。

0

如果你在asp.net工作,你可以使用你的不同的控制RequiredFieldValidator如下面的例子:

<tr> 
<td> 
<asp:RequiredFieldValidator runat=server 
    ControlToValidate=txtName 
    ErrorMessage="Identifier is required."> * 
</asp:RequiredFieldValidator> 
</td> 
<td>User Identifier :</td> 
<td><input type=text runat=server id=txtName></td> 
</tr> 

爲必填字段,然後使用類似jQuery的獲取數據您可以使用ValidationSummary屬性,在必填字段前面顯示「*」。

<asp:ValidationSummary runat=server 
     headerText="there is error on this page/> 

,不要忘記驗證方法:

public sub OnSubmit(source as Object, e as EventArgs) 
    if Page.IsValid then 
    ' Some code 
    end if 
end sub 
相關問題