1

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

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

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

谢谢。


也许我需要说出完整的案例。我有两个输入,说a & b,这两个数之和不能大于c。

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

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

4

4 回答 4

3

这对我有用:

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

//in javascript
<%=valOptionsCmp.ClientID%>.valuetocompare = yourvalue
于 2011-04-04T09:54:35.307 回答
0

从:

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

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

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

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

于 2009-06-29T02:03:32.753 回答
0

如果您的意思是Enter Your PasswordPlease Reenter Password类型的比较,那么您不需要使用ValueToCompare。相反,您可以像这样使用ControlToCompareControlToValidate

  <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"/>
于 2009-06-29T02:20:41.393 回答
0

我用萤火虫帮助解决了同样的问题:

<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。

于 2010-07-13T13:55:13.567 回答