我想动态创建控件的验证。我有一个超过25个控件的页面,这些控件的可见性基于类别和子类别。对于某些类别,需要控件,其中一些不是必需的。这是幕后的商业逻辑。
所以我在这里计划的是,基于类别和子类别选择,我计划为所有必填字段包含html属性isMandated=true
。并在onblur
事件上验证其价值。单击按钮(将页面发布到服务器时)我计划根据isMandated
属性验证所有控件。
这种方法是否正确,所有主流浏览器都支持这种属性添加?
答案 0 :(得分:2)
如果要包含其他属性,则需要使用data-前缀。所以在你的情况下:
data-isMandated="true"
所有主流浏览器都支持此功能。然后使用类似jQuery的东西获取数据:
var isMandated = $(selector).attr("data-isMandated");
答案 1 :(得分:0)
如果您的属性为"isMandated"
,则您的网页可能无法使用HTML验证。正确的方法是创建自定义属性"data-isMandated"
。这种方法适用于所有浏览器(之前我创建了类似的页面,它可以在IE7 +,FF,Chrome上运行)。
也许会更好,将类添加到所有必填字段,而不是属性isMandated=true
,并检查此类的所有字段。
此外,您可以使用jquery validation - plugin。它包括一些验证规则,如必填字段,最小/最大值,电话号码验证,电子邮件验证等。
答案 2 :(得分: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>
对于必填字段,您可以使用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