【问题标题】:Validating textbox values验证文本框值
【发布时间】:2010-09-14 08:00:01
【问题描述】:

我有三个文本框:Textbox1、Textbox2、Textbox3

我必须检查三个值是否相同。

例如:我在一个文本框中有 1 作为值。我不能在其他两个文本框中有 1。

我正在使用文本框输入 ID。如果我输入重复的 id(例如我在 Textbox1 和 Textbox2 / Textbox3 中输入 1 ),程序应该给我一条消息。

【问题讨论】:

  • 是的,自定义验证器是要走的路。更大的灵活性。

标签: c# asp.net validation


【解决方案1】:

您可以使用CustomValidator 和额外的ClientValidation-Function

类似这样的:

<script type="text/javascript" >
    function ClientValidate(sender, args){
        var Textbox1=document.getElementById('<%=Textbox1.ClientID%>');
        var Textbox2=document.getElementById('<%=Textbox2.ClientID%>');
        var Textbox3=document.getElementById('<%=Textbox3.ClientID%>');
        if(Textbox1!=null && Textbox2!=null && Textbox3!= null){
            args.IsValid = !(Textbox1.value==Textbox2.value || Textbox1.value==Textbox3.value || Textbox2.value==Textbox3.value);
        }
        return;
    }
</script>

【讨论】:

    【解决方案2】:

    如果您不使用 LINQ,那么在服务器上执行此操作的常用方法可能是:

    string tb1 = Textbox1.Text.Trim();
    string tb2 = Textbox2.Text.Trim();
    string tb3 = Textbox3.Text.Trim();
    
    if( tb1 == tb2 || tb1 == tb3 || tb2 == tb3) 
    {
        // Do something
    }
    

    如果您需要在客户端上执行此操作,您可以使用 3 个 CompareValidators 来执行类似的操作。

    【讨论】:

      【解决方案3】:

      您需要CustomValidator。阅读它。

      【讨论】:

        【解决方案4】:
        var uniqueTextcount =  (new [] { tb1, tb2, tb3 }).Select(tb => tb.Text).Distinct().Count()
        if (uniqueTextCount != 3)
          // ARGH!
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-19
          • 2014-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多