使用增量ID从循环循环调用Javascript
我有这个php网站,我使用它的JavaScript。 一个页面中是一个条目的形式与10号线在进入数据 在这种情况下,一个行会以这种方式编码:使用增量ID从循环循环调用Javascript
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 =价格1到输入框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>
可惜,这是行不通的。我究竟做错了什么?
尝试修改您的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中吗?
请告诉OP他们为什么要“尝试”。 – 2014-09-22 15:40:27
即使没有尝试我有一个预感'document.fabricorder.price(j + 1)'会抛出一个错误。 – 2014-09-22 15:43:12
如果你有jQuery更好的方式可能是循环和选择每个输入像这样:'$(“#price”+ i).val()' – Scott 2014-09-22 15:48:20
请定义“这不起作用”。 – Teemu 2014-09-22 15:35:25
在表达式'document.fabricorder.price(i + 1).value'中,'document.fabricorder.price'将被视为一个函数并被调用(“不工作”)。 – 2014-09-22 15:41:40
Teemu,基本上这不会复制第1行的任何数据到第2行。 – 2014-09-22 16:35:03