这可能吗?
我有两个使用RegularExpressionValidator的文本框,它正在检查“,”如果没有逗号,我希望它清除文本框并在文本框旁边显示错误消息。
如果这是不可能的,我可以用什么来检查输入值中的“,”?
谢谢
答案 0 :(得分:2)
这是解决方案:
<asp:TextBox ID="tb1" runat="server" />
<asp:RegularExpressionValidator ErrorMessage="Comma is required" ControlToValidate="tb1" runat="server" ValidationExpression=".*,.*" ForeColor="Red"/>
编辑:验证失败时包括明文框的javascript函数。
<asp:TextBox ID="tb1" runat="server" OnChange="tbOnChange();" />
<asp:RegularExpressionValidator ID="tbVal" ErrorMessage="Comma is required" ControlToValidate="tb1" runat="server" ValidationExpression=".*,.*" ForeColor="Red" />
<script type="text/javascript">
function tbOnChange() {
if (typeof (Page_Validators) == "undefined") return;
if (!tbVal.isvalid) {
var tb1 = document.getElementById('tb1');
tb1.value = '';
}
}
</script>
此致
ķ
答案 1 :(得分:1)
如果我已正确理解您的问题,您需要检查是否存在逗号,然后在验证失败时清除文本框。
要检查是否存在逗号,请执行ValidationExpression: “。,。”即:
<asp:RegularExpressionValidator runat="server" id="valRgx" ControlToValidate="txtBox" ValidationExpression=".*,.*" ErrorMessage="Must contain a comma" />
要检查是否需要清除文本框,假定完整回发,请覆盖页面预渲染事件,如果验证失败,请清除文本框:
即
protected void Page_PreRender(object sender, EventArgs e)
{
if (!NameOfValidator.IsValid) TextBoxName.Text = string.Empty;
}
编辑2:
要回答有关单独接受F4或条形码模式的问题:
<asp:RegularExpressionValidator runat="server" id="valRgx" ControlToValidate="txtBox" ValidationExpression="(F4)|(.*,.*)" ErrorMessage="Must contain a comma" />