Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用for循环和HTML输入在Javascript中创建数组_Javascript_Html_Arrays_For Loop_Indexing - Fatal编程技术网

使用for循环和HTML输入在Javascript中创建数组

使用for循环和HTML输入在Javascript中创建数组,javascript,html,arrays,for-loop,indexing,Javascript,Html,Arrays,For Loop,Indexing,我已经在我的html表单中为大量输入建立了索引 我想循环输入并创建一个数组。从这个数组中,我想收集字段的总数,最后附加另一个HTML输入以显示该总数 我知道如何在PHP中做到这一点,但我正在努力使用JavaScript,我需要在客户端完成它 我已经尽可能多地构建了这些。是一个JSFIDLE: 这是我的html: 对于像所有表单元素之和这样简单的东西,除非您想以多种方式操纵每个值,否则实际上不需要数组。但是,您可以循环表单中的每个输入,获取其值并将其添加到总数中 但是,看看您的代码,我必须指出J

我已经在我的html表单中为大量输入建立了索引

我想循环输入并创建一个数组。从这个数组中,我想收集字段的总数,最后附加另一个HTML输入以显示该总数

我知道如何在PHP中做到这一点,但我正在努力使用JavaScript,我需要在客户端完成它

我已经尽可能多地构建了这些。是一个JSFIDLE:

这是我的html:


对于像所有表单元素之和这样简单的东西,除非您想以多种方式操纵每个值,否则实际上不需要数组。但是,您可以循环表单中的每个输入,获取其值并将其添加到总数中

但是,看看您的代码,我必须指出Javascript不要求变量前面加$PHP。但是,您有机会使用它们(JQuery用户经常这样做)来表示他们的变量实际上是JQuery变量

我将您的JSFIDLE分叉,并重写了一些内容以使其正常工作,正如问题所述:

函数sumtheinkins(){
var runningTotal=0;
var ourlist=document.getElementsByClassName(“inkind”);
对于(var i=0;i
然而,我的实现依赖于按钮按下,这可能不是预期的,通过应用以下方法,可以轻松地将其更改回onchange:

var inks = document.getElementsByTagName("inkind"); 
for (var i=0;i<inks.length;i++) {
    inks.onchange = sumTheInkinds;
}
var inks=document.getElementsByTagName(“inkind”);

对于(var i=0;您是否考虑使用jQuery?@ MaCuCeDeT),如果您能给我一个如何在jQuery中实现它的例子,我很乐意使用它。我设法实现了您的解决方案,并感谢您花时间来解释一切,尤其是那些我赞赏它的标志。
function calcInKind() {
    var runningTotal = 0;
    var i = 0;
    for (var i = 0; document.getElementById('inkind').value; i++){
        if(document.getElementById('inkind').value != ''){
            $gwyl_gr = document.getElementById('inkind').value;
            $runningTotal = parseFloat($runningTotal) + parseFloat($gwyl_gr);
            }else{
            $gwyl_gr = 0;
            }
            i = i++;
        }
    document.getElementById('total_inkind').value = $runningTotal;
    }
function sumTheInkinds() {
    var runningTotal = 0;
    var ourlist = document.getElementsByClassName("inkind");
    for (var i = 0; i < ourlist.length; i++) {

        if (ourlist[i].value != '') {
            try {
                runningTotal = runningTotal + parseFloat(ourlist[i].value);
            } catch (err) {
                alert ("Value was not a float!");
            }
        }

    }

    document.getElementById('total_inkind').value = runningTotal;
};
document.getElementById("runcalc").onclick = sumTheInkinds;
var inks = document.getElementsByTagName("inkind"); 
for (var i=0;i<inks.length;i++) {
    inks.onchange = sumTheInkinds;
}