我正在尝试创建一个页面,用户可以根据需要向表中添加尽可能多的行,然后输入值(表格的每个单元格中都有一个输入)是传回到页面。在JavaScript中动态生成输入名称
我试图使每个动态生成的输入框的名称不同,我的问题来了。我试图创建一个变量来完成它,但是我使用的语法在其他地方可行,在创建新元素时似乎不起作用。
这里是有问题的代码:
if ($_POST['dept_1'] != null){ //If there was an input
$i = intval($_POST['num_of_rows']);
while ($i != 0){
$dept = $_POST['dept_' . $i];
$hours = $_POST['hours_' . $i];
echo $dept . " " . $hours . "\n";
$i--;
}
}
.....
var i = 2;
$("document").ready(function(){
$("#newrow").click(function(e){
$("#maintable").append('<tr> \
<td><input type="text" name="dept_" + i size="5" maxlength="5" /></td> \
<td><input type="text" name="hours_" + i size="5" maxlength="1" /></td> \
</tr>');
alert("dept_" + i);
e.preventDefault();
$("#hiddenvalue").attr("value", "" + i + "");
i = i + 1;
});
});
$ POST [ '部门'。 $ i]在$ i = 1时工作,因为dept_1被写入页面的HTML中。
alert(“dept_”+ i)起作用,将i的值连接到字符串。
name =“dept_”+我不工作。检查新元素,其名称是“dept_ + i”
为什么会发生这种情况,我该如何解决?
谢谢你教我的东西新。尽管如此,我真的很想学习我的问题的答案,因为我曾尝试过其他时间做类似的事情,并让他们不工作。 – 2012-03-31 01:11:50
@AndrewLatham在ThiefMaster的回答中,你已经掌握了一切。 – iambriansreed 2012-03-31 01:13:12