使用增量ID从重复循环调用Javascript

时间:2014-09-22 15:29:45

标签: javascript php

我有这个php网站,我用它来使用javascript。 其中一个页面是一个输入表单,其中包含10行输入数据。 在这种情况下,一行将以这种方式编码:

echo "<td style='border-width: 0'><input type='text' id = 'price1' style = 'font-size: 10px' name='poline1[price]' size='7'></td>";

在此输入字段旁边有一个按钮:

echo "<td style='border-width: 0'><a href = 'javascript:void(0)' onClick = 'copyRow1;' class='button6'>Copy Down</a></td>";

Javascript函数copyRow1如下:

<script type="text/javascript">
function copyRow1() {
        document.fabricorder.price2.value = document.fabricorder.price1.value;
    }
</script>  

它将输入框ID = price1的输入值复制到输入框ID = price2。

我有10个像这样的Javascript函数 copyRow1(),copyRow2(),copyRow3()等....

它工作正常,但我正在尝试优化所有代码,以便更容易修改,现在我想循环我的所有行。

所以我想以这种方式更改我的行脚本:

for ($i = 1; $i <= 10; ++$i){
echo "<tr>";
echo "<td style='border-width: 0'><input type='text' id = 'price$i' style = 'font-size: 10px' name='poline[$i][price]' size='7'></td>";
echo "<td style='border-width: 0'><a href = 'javascript:void(0)' onClick = 'copyRow($i);' class='button6'>Copy Down</a></td>";
echo "</tr>";
}

和我的功能这样:

<script type="text/javascript">
function copyRow(i) {
        document.fabricorder.price(i+1).value = document.fabricorder.price(i).value;
    }
</script>        

不幸的是,这不起作用。我做错了什么?

1 个答案:

答案 0 :(得分:0)

尝试将copyRow功能修改为:

 function copyRow(i) {
      for (var j=i,numRows=document.fabricorder.length;j<numRows;j++) {
           document.fabricorder["price"+(j+1)].value = document.fabricorder["price"+(j+1)].value;
      }
 }

您需要遍历所有输入字段,将每个值复制到下一个。如果没有看到100%的代码,很难给你100%的工作代码。你能把它放在JSFiddle中吗?