我正在动态添加一大堆 Jquery 验证规则。我收到错误消息,因为某些文本框是根据之前页面上的用户选择隐藏的,因此页面上不存在。如何在添加验证规则之前检查文本框是否存在?
以下是添加的验证规则:
$('[id$="txtLastName"]').rules('add', {
isSpecialChar: true,
maxlength: 13,
oneOrBothEntered: "txtFacility",
messages: {
oneOrBothEntered: "Either Provider Name or Facility Name must be entered"
}
});
$('[id$="txtFirstName"]').rules('add', {
isSpecialChar: true,
maxlength: 11,
conditionallyRequired: "txtLastName",
messages: {
conditionallyRequired: "This field is required."
}
});
......还有更多。所以说 txtLastName 被隐藏了,这段代码就会中断。如何在添加规则之前先检查 txtlastname 是否存在?
编辑:根据@sparky 的评论,为字段添加 HTML:
<div class="container1">
<span class="span150Padded">Last</span>
<asp:TextBox ID="txtLastName" runat="server" CssClass="textBoxMedium"></asp:TextBox>
</div>
<div class="container1">
<span class="span150Padded">First</span>
<asp:TextBox ID="txtFirstName" runat="server" CssClass="textBoxMedium"></asp:TextBox>
</div>
我动态添加规则的原因是因为我正在使用母版页,所以我的字段被重命名。我不能使用 <%=textbox.ClientID%> 方法,因为我的验证是在一个单独的 js 文件中,该文件是从我的 aspx 页面引用和调用的,并且 js 文件不会重新识别类似的东西。经过很多来回,我发现最干净的解决方案是动态添加验证规则。
如果您对我有其他建议,请告诉我。