如何验证文本框,使用户只能输入两个单词“NR”,并且还允许用户输入小于12长度的字符。我不想使用正则表达式。我可以使用标签显示错误消息。我已经尝试过但不行。我把这段代码放在textchanged事件中:
if ((TextBoxJO.Text != "NR") || (TextBoxJO.Text.Length != 12))
{
LabelMessageJO.visible = true;
LabelMessageJO.Text = "Wrong format";
Button_Add.Enabled = false;
}
else
{
LabelMessageJO.Visible = false;
}
答案 0 :(得分:0)
代码中有一些问题:
TextBoxJO.Text != "NR"
表示文本框应该正好= "NR"
,只要您在"NR"
之后添加任何其他内容,就会错误。!TextBoxJO.Text.StartsWith("NR")
。 LabelMessageJO.visible = true;
visible
部分应为Visible
if ((!TextBoxJO.Text.StartsWith("NR")) || (TextBoxJO.Text.Length >= 12))
{
Button_Add.Enabled = false;
LabelMessageJO.Text = "Wrong format";
LabelMessageJO.Visible = true;
}
else
{
LabelMessageJO.Visible = false;
Button_Add.Enabled = true;
}
上面的代码应该接受任何以“NR”开头的小于12个字符的内容。
“NR123456789”将有效。
“N12345678”将无效,因为在第二位缺少“R”。
“NR1234567890”将无效,因为它的长度为12(如果您希望12个字符有效,只需从TextBoxJO.Text.Length >= 12
删除=符号
答案 1 :(得分:0)
您可以使用CustomValidator执行此操作。
<asp:TextBox ID="TextBoxJO" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" ControlToValidate="TextBoxJO"
ClientValidationFunction="isValidCustomTextBox" runat="server"
ErrorMessage="CustomValidator" ValidateEmptyText="true"></asp:CustomValidator>
<script>
function isValidCustomTextBox(oSrc, args) {
var value = args.Value;
if ((value == "NR") || (value.length == 12 && value.substring(0, 2) != "NR")) {
args.IsValid = true;
} else {
args.IsValid = false;
}
}
</script>