【问题标题】:CompareValidator not working well - ASP.netCompareValidator 无法正常工作 - ASP.net
【发布时间】:2020-03-18 06:36:22
【问题描述】:

我使用了比较验证器来检查所选日期是否有效。这里的问题是它仅在单击提交按钮时触发,是否可以检查用户何时选择日期。

<tr id="trow" runat="server"> 
            <td class="auto-style3">Need Duration</td>  
            <td class="auto-style2">  
            <asp:TextBox ID="TextBox1" runat="server" ReadOnly = "true"></asp:TextBox>
             <asp:ImageButton ID="imgJoin" runat="server" ImageUrl="Images/calender.png"/>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
            ControlToValidate="TextBox1" ErrorMessage="*" ForeColor="Red" 
            SetFocusOnError="True"></asp:RequiredFieldValidator></td>


              <td> 
             <asp:TextBox ID="TextBox2" runat="server" ReadOnly = "true"></asp:TextBox>
              <asp:ImageButton ID="imgHide" runat="server" ImageUrl="Images/calender.png"/>
             <asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server" 
            ControlToValidate="TextBox2" ErrorMessage="*" ForeColor="Red" 
            SetFocusOnError="True"></asp:RequiredFieldValidator>

             <asp:CompareValidator ID="CompareValidator1" runat="server" Operator="GreaterThanEqual"
              ControlToValidate="TextBox2" ControlToCompare="TextBox1" 
               ErrorMessage='Invalid Date' 
                 ForeColor="Red"></asp:CompareValidator>
             </td>
            </tr>  

【问题讨论】:

  • 你在两个 strings 上使用了 GreaterOrEqual 运算符并给出了关于无效 date 的错误消息?
  • @HansKesting 文本框 1 和 2 用于从用户那里获取开始日期和结束日期,当单击图像按钮时,它将显示日历供用户选择日期。跨度>
  • 你知道那些文本应该是日期,但是那个验证器怎么知道呢?解决方案:设置其Type 属性,但注意remarks - 服务器端仅适用于日期

标签: c# asp.net


【解决方案1】:

已经有一段时间了,但我认为您需要通过添加来启用客户端验证脚本:

EnableClientScript="True"

例子

<asp:CompareValidator ID="CompareValidator1" EnableClientScript="True" runat="server" 
          Operator="GreaterThanEqual"
          ControlToValidate="TextBox2" ControlToCompare="TextBox1" 
          ErrorMessage='Invalid Date' 
          ForeColor="Red"></asp:CompareValidator>

记录在msdn。


此外,我确实知道自定义验证器通常缺乏正确的 javascript 实现。我不确定CompareValidator在这个意义上是如何表现的。

您可能需要创建一个继承类来完全实现脚本。在去那里之前,请尝试做一些研究。

例如here is a solution with a custom validator

【讨论】:

  • EnableClientScript="True" 对我不起作用。但我会尝试您提供的其他选项。谢谢
  • 我认为自定义验证器可以工作,但工作量更大
猜你喜欢
  • 2013-11-16
  • 2013-12-20
  • 1970-01-01
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多