我正在嘗試創建一個頁面,用戶可以根據需要向表中添加儘可能多的行,然後輸入值(表格的每個單元格中都有一個輸入)是傳回到頁面。在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