如何使用javascript迭代ASP.NET文本框并计算值?

如何使用javascript迭代ASP.NET文本框并计算值?,.net,asp.net,javascript,asp.net-ajax,.net,Asp.net,Javascript,Asp.net Ajax,我在repeater中有多个文本框,我将在运行时在这些文本框中输入值。我希望在一个标签中输入这些文本框中所有值的总和。我希望使用java脚本来完成这项工作。所以你能帮我一下吗。类似这样的,假设你想对中继器控件中的所有文本框求和。这也只会对数值求和 var repeater = document.getElementById('repeater_id'); var inputs = repeater.getElementsByTagName('input'); var sum = 0; for (

我在repeater中有多个文本框,我将在运行时在这些文本框中输入值。我希望在一个标签中输入这些文本框中所有值的总和。我希望使用java脚本来完成这项工作。所以你能帮我一下吗。

类似这样的,假设你想对中继器控件中的所有文本框求和。这也只会对数值求和

var repeater = document.getElementById('repeater_id');
var inputs = repeater.getElementsByTagName('input');
var sum = 0;
for (var i=0; i < inputs.length; i++) {
    if (inputs[i].type === "text" && /^\d+$/.test(inputs[i].value)) {
        sum += inputs[i].value;
    }
}
var repeater=document.getElementById('repeater_id');
var inputs=repeater.getElementsByTagName('input');
var总和=0;
对于(变量i=0;i

如果您正在做大量的客户端工作,为什么不看看如何使用jQuery之类的库来完成这项工作呢。

类似这样的东西,假设您希望对repeater控件中的所有文本框求和。这也只会对数值求和

var repeater = document.getElementById('repeater_id');
var inputs = repeater.getElementsByTagName('input');
var sum = 0;
for (var i=0; i < inputs.length; i++) {
    if (inputs[i].type === "text" && /^\d+$/.test(inputs[i].value)) {
        sum += inputs[i].value;
    }
}
var repeater=document.getElementById('repeater_id');
var inputs=repeater.getElementsByTagName('input');
var总和=0;
对于(变量i=0;i

如果您正在做大量的客户端工作,为什么不看看如何使用库(如jQuery)来完成这些工作。

以下是一个开始的想法:

  • 在您的
    中继器周围放置一个
    ,并给它一个唯一的
    id
  • 使用JavaScript中的
    document.getElementById()
    函数获取对该
    的引用
  • 使用DOM元素中的
    getElementsByTagName()
    函数查找其中的所有
    s
  • 循环它们,将它们的值(解析为整数)相加
  • 因此,如果您的标记看起来像这样:

    <div id="coolStuff">
        <asp:Repeater ... >
    </div>
    
    var container = document.getElementById("coolStuff");
    var inputs = container.getElementsByTagName("input");
    
    var sum = 0;
    
    for (var i = 0; i < inputs.length; i++) {
        sum += inputs[i].value;
    }
    
    alert(sum);
    
    
    
    JavaScript大致如下所示:

    <div id="coolStuff">
        <asp:Repeater ... >
    </div>
    
    var container = document.getElementById("coolStuff");
    var inputs = container.getElementsByTagName("input");
    
    var sum = 0;
    
    for (var i = 0; i < inputs.length; i++) {
        sum += inputs[i].value;
    }
    
    alert(sum);
    
    var container=document.getElementById(“coolStuff”);
    var inputs=container.getElementsByTagName(“输入”);
    var总和=0;
    对于(变量i=0;i
    现在,此代码不会进行检查以确保
    实际上是
    类型=text
    或确认输入的值是数字。这些部分留给读者作为练习;)


    编辑:如果在
    中继器输出的每个“行”中都有多个文本框,并且只想对一组框的值求和,则需要稍微更改脚本。以下是两种可能的解决方案-选择一种:

  • 如果您确切地知道每个“行”中有多少个
    元素,则可以将客户端脚本中的
    for
    循环更改为仅访问每个第n个元素。例如,只选择每行三个字段中的最后一个:
    for(var i=2;i

  • 将标记更改为在要作为总和一部分的
    元素上包含
    class
    属性。在
    for
    循环中,对
    输入[i].className
    进行测试,以验证是否要包括特定字段


  • 以下是一个让您开始的想法:

  • 在您的
    中继器周围放置一个
    ,并给它一个唯一的
    id
  • 使用JavaScript中的
    document.getElementById()
    函数获取对该
    的引用
  • 使用DOM元素中的
    getElementsByTagName()
    函数查找其中的所有
    s
  • 循环它们,将它们的值(解析为整数)相加
  • 因此,如果您的标记看起来像这样:

    <div id="coolStuff">
        <asp:Repeater ... >
    </div>
    
    var container = document.getElementById("coolStuff");
    var inputs = container.getElementsByTagName("input");
    
    var sum = 0;
    
    for (var i = 0; i < inputs.length; i++) {
        sum += inputs[i].value;
    }
    
    alert(sum);
    
    
    
    JavaScript大致如下所示:

    <div id="coolStuff">
        <asp:Repeater ... >
    </div>
    
    var container = document.getElementById("coolStuff");
    var inputs = container.getElementsByTagName("input");
    
    var sum = 0;
    
    for (var i = 0; i < inputs.length; i++) {
        sum += inputs[i].value;
    }
    
    alert(sum);
    
    var container=document.getElementById(“coolStuff”);
    var inputs=container.getElementsByTagName(“输入”);
    var总和=0;
    对于(变量i=0;i
    现在,此代码不会进行检查以确保
    实际上是
    类型=text
    或确认输入的值是数字。这些部分留给读者作为练习;)


    编辑:如果在
    中继器输出的每个“行”中都有多个文本框,并且只想对一组框的值求和,则需要稍微更改脚本。以下是两种可能的解决方案-选择一种:

  • 如果您确切地知道每个“行”中有多少个
    元素,则可以将客户端脚本中的
    for
    循环更改为仅访问每个第n个元素。例如,只选择每行三个字段中的最后一个:
    for(var i=2;i

  • 将标记更改为在要作为总和一部分的
    元素上包含
    class
    属性。在
    for
    循环中,对
    输入[i].className
    进行测试,以验证是否要包括特定字段

  • HTH.

    获取jQuery。 使用例如CssClass='totals'将类添加到repeater标记中的文本框中。使用以下jQuery代码对值进行合计

    var total = 0;
    $('input.totals').each(function(){
    
     if (!isNan($(this).text())) total += $(this).text()
    });
    
    alert('Total is ' + total);
    
    获取jQuery。 使用例如CssClass='totals'将类添加到repeater标记中的文本框中。使用以下jQuery代码对值进行合计

    var total = 0;
    $('input.totals').each(function(){
    
     if (!isNan($(this).text())) total += $(this).text()
    });
    
    alert('Total is ' + total);
    

    这不是您要求完成代码的地方。尝试编写代码,如果遇到问题,请寻求帮助。上有关于此主题的讨论,可能会有所帮助。请有人重命名此主题。也许重新开始。更多的信息也不会有什么坏处。这不是你要求完成代码的地方。尝试编写代码,如果遇到问题,请寻求帮助。上有关于此主题的讨论,可能会有所帮助。请有人重命名此主题。也许重新开始。更多的信息也不会有什么坏处。你还好吧,但我有3个不同的coulmn。如果我这样做的话,它会对所有的文本框进行求和