Javascript数组进入函数不工作?

Javascript数组进入函数不工作?,javascript,arrays,dynamic,add,field,Javascript,Arrays,Dynamic,Add,Field,我经常使用这个网站进行研究等,发现它非常有用 我一直在开发一些代码,这些代码将获得输入id名称的列表,然后使用javascript/jquery将这些值添加到一起 这就是我到目前为止所拥有的——这可能很离谱,因为我还是个新手 到目前为止,代码可以很好地获得输入的名称。它也可以很好地进行计算,但是当我将数组放入“var fieldnames”时,计算会停止工作吗 当我将数组复制出来(在将其放入输入之后)并将其粘贴到“var fieldnames”中时,效果很好 问题似乎是数组没有正确地传递给“va

我经常使用这个网站进行研究等,发现它非常有用

我一直在开发一些代码,这些代码将获得输入id名称的列表,然后使用javascript/jquery将这些值添加到一起

这就是我到目前为止所拥有的——这可能很离谱,因为我还是个新手

到目前为止,代码可以很好地获得输入的名称。它也可以很好地进行计算,但是当我将数组放入“var fieldnames”时,计算会停止工作吗

当我将数组复制出来(在将其放入输入之后)并将其粘贴到“var fieldnames”中时,效果很好

问题似乎是数组没有正确地传递给“var fieldnames”

这是页面中的代码-它将数组放入底部的输入中,仅用于调查目的,但除非您手动输入输入名称,否则计算不起作用

任何帮助都将不胜感激。 谢谢


无标题文件
函数getTotal(oForm)
{
var arrayOfIDs=$('.myClass').map(函数(){return this.id;}).get();
var test=(arrayOfIDs.length?”“+arrayOfIDs.join(“,”)+“:”);
document.getElementById(“sum”).value=test;
变量字段,i=0,total=0,els=oForm.elements;
var fieldnames=[test];
document.getElementById(“sum1”).value=字段名;
对于(i;i
总和
sum1
如果我正确理解了您的问题,而您只想将值相加,同时提供基本的有效性检查,那么您的代码将非常复杂。像jQuery这样的框架为您提供了更简单的方法

不要循环遍历所有输入元素,获取它们的id,然后再次循环遍历它们,只需执行一次即可

var getTotal (oForm) {
    var sum = 0;
    // loop through all inputs with class "myClass" inside oForm
    $("input.myClass", $(oForm)).each(function (index, value) {
        // add up all values that are non empty and numeric
        if (value !== "" && !isNaN(value)) {
            // parse the value
            sum += parseFloat(value, 10);
        } else {
            // show an alert, focus the input and return early from $.fn.each
            alert("Please enter a valid number here!");
            $(this).focus();
            return false;
        }
    });

    // set the value of 
    $("sum").val(sum);
}
这是从我的头顶写的,但应该可以正常工作。

1-替换这行

var test = (arrayOfIDs.length ? "'" + arrayOfIDs.join("','") + "'" : "");

2-更换

var fieldnames = [test];

3-更换

field = els[fieldnames[i]];


我在这里所做的只是纠正您的代码以解决您的问题,但我相信您可以用一种更简单的方法来完成此操作。

您是否尝试将脚本包含在body标记之后?
fieldnames
是一个数组,它只包含一个元素,
#sum
输入的字符串值。这可能不是你想要的。代码在开头的body标签下面?fieldnames正在进行测试,这是一个字段数组?我冒昧地创建了一个简化的代码版本,突出显示无效字段,并关注第一个字段:如果您发现它有价值,请使用它:)非常感谢您的帮助,非常感谢!我只是想知道我怎样才能自动进行计算,而不必按“获取总数”按钮?代码在开始正文标签下面?fieldnames正在进行测试,这是字段数组。谢谢Torsten,但当我实现这段代码时,它只会不断显示警报消息?有些值不是整数。我知道这不是最好的方法-在收到消息的回复后,也许值得我做一点进一步的研究,使其更简洁,但感谢你的帮助-这个答案很有效对待谢谢
var fieldnames = [test];
var fieldnames = test.split(",");
field = els[fieldnames[i]];
field = document.getElementById(fieldnames[i]);