0

我通过 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);
    }
4

3 回答 3

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 而不是警报。所以在控制台中查看结果)

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

于 2013-09-12T11:19:55.060 回答
1

我猜你正在将数字连接为字符串。尝试使用解析它们

parseInt(document.getElementById(a).value)
于 2013-09-12T11:29:55.203 回答
0

如何使用 jQuery

var sum = 0;

$('input').each(function(){
    sum += $(this).val();
})
于 2013-09-12T11:19:17.843 回答