Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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
多输入数组在使用javascript的for循环中不起作用_Javascript - Fatal编程技术网

多输入数组在使用javascript的for循环中不起作用

多输入数组在使用javascript的for循环中不起作用,javascript,Javascript,我有3个输入数组字段,我使用JS按名称调用它们。当我只调用一个数组输入时,它将按照循环工作,例如,如果循环将运行3次,那么它将使用下面的代码显示警报3次 function checkFluency() { var costPrice = document.getElementsByName('costPrice[]'); var salePrice = document.getElementsByName('salePrice[]'); var gst = docume

我有3个输入数组字段,我使用JS按名称调用它们。当我只调用一个数组输入时,它将按照循环工作,例如,如果循环将运行3次,那么它将使用下面的代码显示警报3次

 function checkFluency() {
    var costPrice = document.getElementsByName('costPrice[]');
    var salePrice = document.getElementsByName('salePrice[]');
    var gst = document.getElementsByName('gst[]');
    for (var i = 0; i <costPrice.length; i++) {
        var costPrice_arr=costPrice[i];
        var salePrice_arr=salePrice[i];
        var gst_arr=gst[i];
        //var sale = salePrice_arr.value;
        var cost = costPrice_arr.value;
        //var gst = gst_arr.value;
      
      alert(cost);
        
    }
}
函数检查流畅性(){
var costPrice=document.getElementsByName('costPrice[]);
var salePrice=document.getElementsByName('salePrice[]);
var gst=document.getElementsByName('gst[]);

对于(var i=0;i将注释的gst变量名更改为其他值

var gst = gst_arr.value;
进入:

这样做毫无意义:

var cost = costPrice_arr.value;
只需使用costPrice_arr中的值。我已经尝试过了,并且效果很好。下面是代码:

function checkFluency() {
var costPrice = ["a", "b", "c"];
var salePrice = ["1", "2", "3"];
var gst = ["I", "II", "III"];
for (var i = 0; i < costPrice.length; i++) {
    var costPrice_arr = costPrice[i];
    var salePrice_arr = salePrice[i];
    var gst_arr = gst[i];

    alert(costPrice_arr);

}
函数检查流畅性(){
var成本价格=[“a”、“b”、“c”];
var salePrice=[“1”、“2”、“3”];
增值税=[“一”、“二”、“三”];
对于(变量i=0;i

}

将您的
var gst=gst\u arr.value;
更改为
var gst\u new=gst\u arr.value;
。此外,您还错卖了
salePrice\u arr.value;
。将其更改为
salePrice\u arr.value;

在这里:

函数检查流畅性(){
var costPrice=document.getElementsByName('costPrice[]);
var salePrice=document.getElementsByName('salePrice[]);
var gst=document.getElementsByName('gst[]);
对于(变量i=0;i


检查
salePrice和gst的长度是否也为3或更大?请在问题中添加数组的值。检查控制台,可能会记录错误there@manjish是的,我自己在输入字段中输入值。所以是一样的。此外,这是否会导致循环停止?
没有获取导致循环停止的内容
-在浏览器控制台中查找错误。首先是
var gst\u arr=gst[i]
,然后是
gst=gst\u arr.value
?这似乎不正确。你为什么要这样做?你的问题可能是你用
undefined
覆盖了
gst
,或者在
gst[i]的第二次迭代中导致异常
。此行
var cost=costPrice\u arr.value;
是必需的,因为我正在从表单的输入/文本框字段中获取值。如果我跳过此行并直接调用
costPrice\u arr
var,那么我将得到此错误
[object htmlinput element]
。关于你的解决方案,仅仅更改var的名称没有任何区别。难以置信,我复制了与你相同的方法,但仍然不起作用。但是你在代码段中工作!!问题出在哪里?顺便说一下,我更新了for循环,我将(var I=0;I<3;I++)的
更改为for(var I=0;Ivar salePrice\u arr=0;
,但您试图使用
salePrice\u arr.value
访问它。将
salePrice\u arr.value
更改为
salePrice\u arr
function checkFluency() {
var costPrice = ["a", "b", "c"];
var salePrice = ["1", "2", "3"];
var gst = ["I", "II", "III"];
for (var i = 0; i < costPrice.length; i++) {
    var costPrice_arr = costPrice[i];
    var salePrice_arr = salePrice[i];
    var gst_arr = gst[i];

    alert(costPrice_arr);

}