我有以下html。請看看它,我會一直解釋這個問題。將html表單輸入映射到新形成的元素內的javascript對象
<table>
<tbody>
<tr id="<?php echo $record['id']?>" style="...">
<td><?php echo $record['id']; ?></td>
<td><?php echo $record['url']; ?></td>
<td><input type="button" name="edit" value="Edit" onclick="edit(<?php echo ($record['id'])?>)"></td>
</tr>
</tbody>
</table>
我想在這裏實現的是,當我點擊「編輯」按鈕,它會清除該領域,創建了地方新的空場,其中這些細節可以再次進入到位編輯按鈕,出現更新按鈕。
這是編輯功能是什麼樣子:
<script>
function edit(id){
var element = document.getElementById(id);
$(element).empty();
$(element).append("<td><input name='id' value="+id+" disabled></td>" +
"<td><input type='text' name='url' ></td>" +
"<td><input type='text' name='title'></td>" +
"<td><input type='button' value='Update' onclick='testFunction()'></td>");
}
更新按鈕觸發一個叫做testFunction功能。現在在這個testFunction中,我想將新的值發送到我使用jQuery創建的新表單中,以便我可以將這些值發送到MySQL,以便爲給定的id更新標題的新值。
請查看代碼並告訴我該如何解決此問題?
var testFunction = function(newID){
console.log("This is the NEW id of the object that we are changing----->");
console.log(newID);
console.log("--------------------------END------------------");
$.post("update", { id: newID})
.done(function() {
document.getElementById(id).style.display = "none";
});
};
</script>
所以我理解正確的話,在你的情況下,問題是你不能選擇與jQuery的動態創建的元素呢? – Artley
@Artley ..問題是我無法將新元素的鍵值發送到一個新的函數,該函數通過我創建的按鈕(作爲新的jQuery元素之一)觸發。 –
所以你可以請檢查後的方法 - 它正在尋找id:id,正如我所看到的,它應該是id:newID? – Artley