| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1077 人关注过本帖
标题:循环相加的问题
只看楼主 加入收藏
guang2356447
Rank: 2
等 级:论坛游民
帖 子:434
专家分:31
注 册:2007-7-10
结帖率:65.85%
收藏
已结贴  问题点数:15 回复次数:12 
循环相加的问题
用js 怎么循环读取8个文本框的值(也可以能是9个10个..更多)  并让这些值相加

以下是我的js代码      但是 是固定的5个文本框的值cc1-cc5   怎么改成循环读取的那   比如可能是8个input  或者更多
<script language="javascript">
function calpay(){
frmx = document.form1;
obj = frmx.cc1
for(var i= 0;i< obj.length;i++){
frmx.heji[i].value=frmx.cc1[i].value*1+frmx.cc2[i].value*1+frmx.cc3[i].value*1+frmx.cc4[i].value*1+frmx.cc5[i].value*1
}
}
</script>

[ 本帖最后由 guang2356447 于 2010-7-27 16:02 编辑 ]
搜索更多相关主题的帖子: 相加 
2010-07-27 15:59
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:5 
<script language="javascript">
function calpay(){
var obj=document.getElementsByTagName('input');
var result=document.getElementById('jieguo');
var str="";
     for(var i= 0;i< obj.length;i++)
      {
       str+=obj[i].value;
      }
    result.value=str;
}
</script>
<input type="text"/>
...N个文本框
<input type="text"/>
<input type="button" onclick="calpay();" value="统计"/>
<span id="jieguo"></span>

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-07-27 20:36
guang2356447
Rank: 2
等 级:论坛游民
帖 子:434
专家分:31
注 册:2007-7-10
收藏
得分:0 
用你这个代码
<p>
<script language="javascript">
function calpay(){
var obj=document.getElementsByTagName('input');
var result=document.getElementById('jieguo');
var str="";
     for(var i= 0;i< obj.length;i++)
      {
       str+=obj[i].value;
      }
    result.value=str;
}
</script>
  <input name="q" type="text" id="q" onkeyup='calpay()' onkeydown='calpay()'/>
  </p>
<p>
  <input name="qq" type="text" id="qq" onkeyup='calpay()' onkeydown='calpay()'/>
  </p>
<p>
  <input name="qqq" type="text" id="qqq" onkeyup='calpay()' onkeydown='calpay()'/>
  </p>
<p>
  <input name="qw" type="text" id="qw" onkeyup='calpay()' onkeydown='calpay()'/>
</p>
<p>
  <input name="qwe" type="text" id="qwe" onkeyup='calpay()' onkeydown='calpay()'/>
</p>
<p>
  <input name="jieguo" type="text" id="jieguo" readonly="readonly"/>
</p>
比如我每个文本框输入5    显示的是55555   应该是25      

还有个问题  比如我在第一个文本框输入5后     在jieguo那个文本框就显示5      怎么实现    我再次输入5后    jieguo那个文本框也同时显示那  清楚也一样

怎么改啊

[ 本帖最后由 guang2356447 于 2010-7-28 09:35 编辑 ]
2010-07-28 09:27
guang2356447
Rank: 2
等 级:论坛游民
帖 子:434
专家分:31
注 册:2007-7-10
收藏
得分:0 
还有你这个是循环所有的文本框啦

我的文本框是以行为标准的   比如一行5个  也可以8个  9个  
第二行和第一行数量一样     每一行有一个合计的文本框 显示当前行的总和
2010-07-28 09:40
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:10 
回复 4楼 guang2356447
js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方 法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.
<html xmlns="http://www. >
<head>
    <title>Untitled Page</title>
    <script language="javascript">
        function calpay() {
            var jieguo = 0;
            for (var i = 1; i <= 5; i++) {
                jieguo += parseInt(document.getElementById('q' + i).value);
            }
            document.getElementById('jieguo').value = jieguo;
        }
    </script>
</head>
<body>
  <input name="q1" type="text" id="q1" />+
  <input name="q2" type="text" id="q2" />+
  <input name="q3" type="text" id="q3" />+
  <input name="q4" type="text" id="q4" />+
  <input name="q5" type="text" id="q5" />=
  <input name="jieguo" type="text" id="jieguo" readonly="readonly" />
  <input type="button" value="计算" onclick="calpay();" />
</body>
</html>

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-07-28 10:16
guang2356447
Rank: 2
等 级:论坛游民
帖 子:434
专家分:31
注 册:2007-7-10
收藏
得分:0 


能不能帮忙改成    这样的

就是我在第一个文本框输入的时候  合计直接显示结果啊  在第二个输入直接显示前2个的和  而不是等输入完后 再点按钮来计算结果

还有能不能是改成无限文本框
2010-07-28 10:29
guang2356447
Rank: 2
等 级:论坛游民
帖 子:434
专家分:31
注 册:2007-7-10
收藏
得分:0 
我粘上我的代码给大家看
<script language="javascript">
function calpay(){
frmx = document.form1;
obj = frmx.cc1
for(var i= 0;i< obj.length;i++){
frmx.heji[i].value=frmx.cc1[i].value*1+frmx.cc2[i].value*1+frmx.cc3[i].value*1+frmx.cc4[i].value*1+frmx.cc5[i].value*1
}
}
</script>

cc1-cc5 代表  尺寸1-尺寸5
怎么改成无限制的   比如要加尺寸6  尺寸7
2010-07-28 10:44
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
改成无限的,你就加文本框,然后改下循环上限不就可以了吗?这个不难吧。
我是用了onclick的事件,只是懒得写那么多代码而已,你可以自己改到文本框里调用啊,没问题的,随你喜欢,愿意用什么事件都可以,这个应该也不难吧。
总之思路都给你了,做人不要太懒哦

[ 本帖最后由 冰镇柠檬汁儿 于 2010-7-28 11:22 编辑 ]

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-07-28 11:15
guang2356447
Rank: 2
等 级:论坛游民
帖 子:434
专家分:31
注 册:2007-7-10
收藏
得分:0 
这样可以算出来啦    单只能算出第一行的总和

还有其他行那   第二行  第三行  没反应啊
    <script language="javascript">
        function calpay() {
            var heji = 0;
            for (var i = 1; i <= "<%=session("aa")%>"; i++) {
                heji += parseInt(document.getElementById('cc' + i).value);
            }
            document.getElementById('heji').value = heji;
        }
    </script>
<%
session("aa")=6
%>
2010-07-28 14:13
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
早说啊,这样就可以了啊
    <script language="javascript">
        function calpay(t, res) {
            var heji = 0;
            for (var i = 1; i <= "<%=session("aa")%>"; i++) {
                heji += parseInt(document.getElementById(t + i).value);
            }
            document.getElementById(res).value = heji;
        }
    </script>
每一行传一个相同的值就行了

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-07-28 16:45
快速回复:循环相加的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031742 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved