【发布时间】:2018-11-08 12:41:44
【问题描述】:
我有一个在表单中使用的用户控件。该控件包含两个标准的 Asp.Net 验证控件。
这是代码 sn-p - 如您所见,有一个必填字段验证器和一个正则表达式验证器:
<asp:Panel ID="pnlInputControl" runat="server" CssClass="input-control">
<div class="input-wrapper input-text half-width">
<asp:TextBox ID="tbInput" runat="server"
CssClass="no-space"
MaxLength="11"
type="tel">
</asp:TextBox>
</div>
<asp:RequiredFieldValidator ID="rfvInput" runat="server"
ControlToValidate="tbInput"
Display="Dynamic"
SetFocusOnError="True"
CssClass="validator">
</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revInput" runat="server"
ControlToValidate="tbInput"
Display="Dynamic"
SetFocusOnError="True"
CssClass="validator">
</asp:RegularExpressionValidator>
</asp:Panel>
我验证了一个电话号码 - 文本框本身也将字符数限制为 11,这是英国号码的最大大小。
这是一个示例正则表达式:
^0[12]\d{8,9}$ - 家庭电话号码
我还尝试屏蔽输入,使用 javascript 函数删除空格 - 由文本框上标记为“no-space”的类触发。
$("body").on("input", "input.no-space", removeSpace);
function removeSpace() {
$(this).val(function (_, v) {
return v.replace(/\s+/g, '');
});
}
这在除 MS Edge 之外的所有浏览器上都能和谐运行。
在 Edge 上,它会破坏 Asp.Net 验证 - 验证器不会启动 - 基本上它会锁定整个表单,因为它是必填字段。
问题是我没有收到任何错误,所以除了完全删除类并添加提示让用户知道不要输入空格之外,我不确定我还能做什么。
有什么想法 - 解决问题还是更好的解决方法?
【问题讨论】:
标签: javascript asp.net asp.net-validators