Javascript 如何在客户端验证文本框值的总和

Javascript 如何在客户端验证文本框值的总和,javascript,c#,asp.net,validation,customvalidator,Javascript,C#,Asp.net,Validation,Customvalidator,如果我有一组文本框,说是第一组,另一组文本框说是第二组。现在我想在网格视图的编辑模板中验证第一组的总和是否等于客户端中第二组的总和,以允许保存或添加 例: 我想验证一下: Decimal.Parse(txt1.Text)+ Decimal.Parse(txt2.Text) = Decimal.Parse(txt3.Text )+ Decimal.Parse(txt4.Text) 注意: 其中一个或多个文本框可能为空,在本例中,我 考虑值 0 < /P> 如何使用asp.net验证程

如果我有一组文本框,说是第一组,另一组文本框说是第二组。现在我想在网格视图的编辑模板中验证第一组的总和是否等于客户端中第二组的总和,以允许保存或添加


例:

我想验证一下:

   Decimal.Parse(txt1.Text)+ Decimal.Parse(txt2.Text) = Decimal.Parse(txt3.Text )+ Decimal.Parse(txt4.Text)
注意:

其中一个或多个文本框可能为空,在本例中,我 考虑值<代码> 0 <代码> < /P>

如何使用asp.net验证程序执行类似操作。

您可以使用自定义验证程序。

下面是一个小例子,让你开始。您可以展开
myCustomValidation
以包括检查非整数值、最小-最大范围等

    <asp:TextBox ID="TextBox1" runat="server" ValidationGroup="myGroup"></asp:TextBox>
    <br />
    <asp:TextBox ID="TextBox2" runat="server" ValidationGroup="myGroup"></asp:TextBox>
    <br />
    <asp:TextBox ID="TextBox3" runat="server" ValidationGroup="myGroup"></asp:TextBox>
    <br />
    <asp:TextBox ID="TextBox4" runat="server" ValidationGroup="myGroup"></asp:TextBox>
    <br /><br />
    <asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="myGroup" />
    <br />
    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Error adding TextBox values" ValidationGroup="myGroup" ClientValidationFunction="myCustomValidation"></asp:CustomValidator>

    <script type="text/javascript">
        function myCustomValidation(oSrc, args) {
            var tb1 = document.getElementById('<%=TextBox1.ClientID %>').value;
            var tb2 = document.getElementById('<%=TextBox2.ClientID %>').value;
            var tb3 = document.getElementById('<%=TextBox3.ClientID %>').value;
            var tb4 = document.getElementById('<%=TextBox4.ClientID %>').value;

            if (tb1 == "" || tb2 == "" || tb3 == "" || tb4 == "") {
                //to make sure the validator fires if one or more textboxes are left empty
                args.IsValid = false;
            } else if (((tb1 + tb2) == (tb3 + tb4))) {
                args.IsValid = true;
            } else {
                args.IsValid = false;
            }
        }
    </script>







函数myCustomValidation(oSrc,args){ var tb1=document.getElementById(“”).value; var tb2=document.getElementById(“”).value; var tb3=document.getElementById(“”).value; var tb4=document.getElementById(“”).value; 如果(tb1=“”| | tb2=“”| | tb3=“”| | tb4=“”){ //确保验证程序在一个或多个文本框为空时启动 args.IsValid=false; }否则如果((tb1+tb2)==(tb3+tb4))){ args.IsValid=true; }否则{ args.IsValid=false; } }
您想比较字符串连接还是文本框包含数字并比较加法?@Matiascero:我想比较这些文本框的值的总和,而不是字符串连接。您需要更具体地说明您想要什么。。如果要将文本框的字符串值验证为整数,则需要执行将文本框值转换为Int的检查,并分配一个变量来保存
var grpOneSum=Convert.ToInt32(txt1.Txex)+Convert.ToInt32(txt2.text)的总和…etc
还向我们展示了每个文本框中的值将包含哪些内容的示例。。或者使用
custonavailidtors
@MethodMan:根据你的说明,我已经编辑了这个问题。
    <asp:TextBox ID="TextBox1" runat="server" ValidationGroup="myGroup"></asp:TextBox>
    <br />
    <asp:TextBox ID="TextBox2" runat="server" ValidationGroup="myGroup"></asp:TextBox>
    <br />
    <asp:TextBox ID="TextBox3" runat="server" ValidationGroup="myGroup"></asp:TextBox>
    <br />
    <asp:TextBox ID="TextBox4" runat="server" ValidationGroup="myGroup"></asp:TextBox>
    <br /><br />
    <asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="myGroup" />
    <br />
    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Error adding TextBox values" ValidationGroup="myGroup" ClientValidationFunction="myCustomValidation"></asp:CustomValidator>

    <script type="text/javascript">
        function myCustomValidation(oSrc, args) {
            var tb1 = document.getElementById('<%=TextBox1.ClientID %>').value;
            var tb2 = document.getElementById('<%=TextBox2.ClientID %>').value;
            var tb3 = document.getElementById('<%=TextBox3.ClientID %>').value;
            var tb4 = document.getElementById('<%=TextBox4.ClientID %>').value;

            if (tb1 == "" || tb2 == "" || tb3 == "" || tb4 == "") {
                //to make sure the validator fires if one or more textboxes are left empty
                args.IsValid = false;
            } else if (((tb1 + tb2) == (tb3 + tb4))) {
                args.IsValid = true;
            } else {
                args.IsValid = false;
            }
        }
    </script>