这可能吗?
我有两个使用 RegularExpressionValidator 的文本框,它正在检查“,”,如果没有逗号,我希望它清除文本框并在文本框旁边显示错误消息。
如果这是不可能的,我可以用什么来检查正在输入的值中的“,”?
谢谢你
这可能吗?
我有两个使用 RegularExpressionValidator 的文本框,它正在检查“,”,如果没有逗号,我希望它清除文本框并在文本框旁边显示错误消息。
如果这是不可能的,我可以用什么来检查正在输入的值中的“,”?
谢谢你
这是解决方案:
<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>
问候
ķ
如果我正确理解了您的问题,您想检查是否存在逗号,然后在验证失败时清除文本框。
要检查是否存在逗号,请使用 ValidationExpression: ". ,. " 即:
<asp:RegularExpressionValidator runat="server" id="valRgx" ControlToValidate="txtBox" ValidationExpression=".*,.*" ErrorMessage="Must contain a comma" />
要检查您是否需要清除文本框,假设一个完整的回发,覆盖页面预渲染事件,如果您的验证失败清除文本框:
IE
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" />