验证长度和文本框的某些单词

时间:2017-06-02 02:09:50

标签: c# asp.net

如何验证文本框,使用户只能输入两个单词“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;
}

2 个答案:

答案 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>