如何通过javascript更改CompareValidator中的ValueToCompare?

时间:2009-06-29 01:58:16

标签: javascript comparevalidator

在我的表单中,有密码字段,所以我不能使用回发。 我需要验证客户端的所有内容。

但ValueToCompare可能会因用户输入而改变。

如何通过javascript更改CompareValidator中的ValueToCompare?

感谢。


也许我需要告诉完整案例。 我有两个输入,说& amp; b,这两个数的总和不能大于c。

例如, c是90 a输入30,则b不能大于60。 如果b然后输入40,则a不能大于50。

我现在正在服务器端执行此操作,如何通过使用asp.net验证在客户端执行此操作?

4 个答案:

答案 0 :(得分:3)

这对我有用:

<asp:CompareValidator ID="valOptionsCmp" runat="server"
     ErrorMessage="!!!"
     ControlToValidate="tbPrixOptions" Display="Dynamic"
     ValueToCompare="1"
     Operator="GreaterThanEqual"
     Type="Integer"/>

//in javascript
<%=valOptionsCmp.ClientID%>.valuetocompare = yourvalue

答案 1 :(得分:0)

自:

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.comparevalidator.aspx

将输入控件中用户输入的值与另一个输入控件中输入的值或常量值进行比较。

这些是你的选择。比较两个控件,或将一个控件与常量进行比较。

如果两者都不合适,您可能需要自己动手。

答案 2 :(得分:0)

如果您的意思是输入密码请重新输入密码类型的比较,那么您不需要使用 ValueToCompare 。而是使用 ControlToCompare ControlToValidate ,如下所示:

  <asp:TextBox id="password" runat="server" TextMode="password"/>
  <asp:RequiredFieldValidator id="rfvPass" runat="server" 
   ControlToValidate="password" Text="*"/>

  <asp:textbox id=="rePassword" runat="server" TextMode="Password"/>
  <asp:CompareValidator id="cmpPass" runat="server" ControlToCompare="password" 
   ControlToValidate="rePassword" Type="String" Operator="Equal"/>

答案 3 :(得分:0)

我用firebug帮助解决了同样的问题:

<script type="text/javascript">
        $(document).ready(function() {
            $("select[id$=ddlYears]").change(function() {
              var year= $(this).val(); 

              <%= cvDataMinApertura.ClientID%>.valuetocompare = "01/01/"+year;          

            });
        });
    </script> 

我在更改年份下拉列表时使用JQuery进行更改比较验证器cvDataMinApertura。