如何使用javascript迭代ASP.NET文本框并计算值?
我在repeater中有多个文本框,我将在运行时在这些文本框中输入值。我希望在一个标签中输入这些文本框中所有值的总和。我希望使用java脚本来完成这项工作。所以你能帮我一下吗。类似这样的,假设你想对中继器控件中的所有文本框求和。这也只会对数值求和如何使用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 (
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
document.getElementById()
函数获取对该
的引用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。如果我这样做的话,它会对所有的文本框进行求和