通过循环汇总文本框值

时间:2013-09-12 11:16:39

标签: javascript html

我通过php循环在html中创建了5个文本框。现在我想通过javascript添加该文本框的值。我试过但它给了我错误的结果。以下是我的代码..

<? for($i=0; $i<5; $i++)
{?>
<input type="text" id="<?=$i;?>" onclick="get(id)" />
<?}?>

function get(x){


        var summ=0;
        for(var a=0; a<5; a++)
        {
            summ=summ+document.getElementById(a).value;

        }
        alert(summ);
    }

3 个答案:

答案 0 :(得分:1)

我认为问题可能是因为整数不是html元素的有效id。您应该尝试将其命名为input-1,input-2 ..

这是一个有效的例子。

HTML

<input type="text" id="input-1"  />
<input type="text" id="input-2"  />
<input type="text" id="input-3"  />
<input type="text" id="input-4"  />
<input type="text" id="input-5"  />

使用Javascript:

var summ = 0;
for(var a=0; a<5; a++) {
    summ += parseInt(document.getElementById("input-" + (a + 1)).value) || 0;

}
alert(summ);

我必须添加|| 0到实际计算,因为否则结果将是“非数字”,因为某些输入字段为空。

(请注意,在下面的小提琴中,我使用的是console.log而不是alert。所以请在控制台中查看结果)

小提琴:http://jsfiddle.net/jonigiuro/tXFEf/1/

答案 1 :(得分:1)

我猜你是把数字连接成字符串。尝试使用

解析它们
parseInt(document.getElementById(a).value)

答案 2 :(得分:0)

如何使用jQuery

var sum = 0;

$('input').each(function(){
    sum += $(this).val();
})