HTML 自定义属性创建和验证



我想动态地为控件创建验证。我有一个包含超过 25 个控件的页面,这些控件可见性基于类别和子类别。对于某些类别,控件是必需的,而其中一些则不需要。这是幕后的业务逻辑。

所以我在这里计划的是,根据类别和子类别选择,我计划为所有必填字段包含一个 html 属性isMandated=true。并在onblur事件中验证其价值。单击按钮(将页面发布到服务器时)时,我计划根据isMandated属性验证所有控件。

这种方法是否正确,所有主流浏览器都将支持这种属性添加?

如果要

包含其他属性,则需要使用 data- 前缀。所以在你的情况下:

data-isMandated="true"

所有主流浏览器都支持此功能。然后使用类似jQuery的东西来获取数据:

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

如果您处理 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>

对于必填字段,您可以使用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

如果您的属性为 "isMandated",您的页面可能无法通过 HTML 验证有效。正确的方法是创建自定义属性"data-isMandated"。这种方法适用于所有浏览器(我之前创建了类似的页面,它适用于IE7 +,FF,Chrome)。也许会更好,将类添加到所有必填字段,而不是属性isMandated=true并用此类检查所有字段。此外,您可以使用jquery验证 - 插件。它包括几个验证规则,如必填字段、最小/最大值、电话号码验证、电子邮件验证等。

最新更新