我試圖在我的應用程序上創建一個允許用戶輸入名稱和地址的窗體。一旦用戶輸入信息,我需要驗證並添加一個數組以提交給php函數。提交之前,我想讓用戶刪除並編輯他們提交的內容。jQuery - 通過按鈕值傳遞變量
現在我可以將數據添加到數組,但我很難刪除數組中的元素。如何將按鈕值分配給數組的索引值。我知道$('#Delete').val(i);
正在for循環的每次迭代重新分配,但我不知道還有什麼要做。
另外,我絕對還是JavaScript的新手。如果你看到更好的方式來做到這一點,最有可能的,請讓我知道。
$(document).ready(function() {
var ItemArray = [];//Initialize array
$("button").click(function() {
$("#results").empty();//Clear results div
//Add form data to array
ItemArray.push({
FirstName: $('#FirstName').val(),
LastName: $('#LastName').val(),
});
\t \t //iterate through array to display array values
for (i = 0; i < ItemArray.length; i++) {
$("#results").append(ItemArray[i]['FirstName'] + " " + ItemArray[i]['LastName'] + " <br>");//Display First and Last Name
$("#results").append('<button id="Delete" value="">Delete</button><br>');//add delete button
$('#Delete').val(i);//set delete button value
}
});
//Delete
$("#results").on("click", "#Delete", function() {
\t \t //Delete selected index from array
ItemArray.splice($('#Delete').val(), 1);
\t \t //clear div
$("#results").empty;
\t \t //iterate through array to display array values
for (i = 0; i < ItemArray.length; i++) {
$("#results").append(ItemArray[i]['FirstName'] + " " + ItemArray[i]['LastName'] + " <br>");//Display First and Last Name
$("#results").append('<button id="Delete" value="">Delete</button><br>');//add delete button
$('#Delete').val(i);//set delete button value
}
});
});
<form action="">
First name:
<input id="FirstName" type="text" name="FirstName" value="Mickey">
<br> Last name:
<input id="LastName" type="text" name="LastName" value="Mouse">
<br>
</form>
<button>Submit</button>
<div id="results"></div>
沒有完全得到自己想要做什麼?你的意思是刪除按鈕只能刪除用戶提交的最後一條記錄嗎? – jilykate
第一件事改變'$(「#results」)。append('
...因爲你直接生成html按鈕,爲什麼不把它設置爲''
'',而不是在一行生成它,然後設置下一行的值? –