У меня есть таблица, полная строк, в которых есть тег <form>
и теги <input>
внутри ячеек, как показано в разметке ниже.
<table style="width:100%">
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr>
<form>
<td><input onkeyup="return searchGet(this.parentNode.parentNode)" type="text" name="Firstname"/></td>
<td><input onkeyup="return searchGet(this.parentNode.parentNode)" type="text" name="Lastname"/></td>
<td><input onkeyup="return searchGet(this.parentNode.parentNode)" type="number" name="Age"/></td>
</form>
</tr>
<tr>
<form>
<td><input onkeyup="return searchGet(this.parentNode.parentNode)" type="text" name="Firstname"/></td>
<td><input onkeyup="return searchGet(this.parentNode.parentNode)" type="text" name="Lastname"/></td>
<td><input onkeyup="return searchGet(this.parentNode.parentNode)" type="number" name="Age"/></td>
</form>
</tr>
........
</table>
Теперь я хочу отправить каждую строку Форма с использованием чистой функции Vanilla JavaScript Ajax всякий раз, когда кто-либо вводит теги ввода в соответствующую форму. Моя Ajax функция проста: она заставляет объект формы выбирать значение всех элементов формы всякий раз, когда набирается любой элемент.
function searchGet(incomingForm) {
var FD = new FormData(incomingForm);
var ajx = new XMLHttpRequest();
ajx.onreadystatechange = function () {
if (ajx.readyState == 4 && ajx.status == 200) {
console.log(ajx.responseText);
}
};
ajx.open("POST", "submit.php", true);
ajx.send(FD);
return false;
}
Теперь проблема в том, что this.parentNode.parentNode
не выбирает элемент <FORM>
но он напрямую выбирает элемент <TR>
. Так как я могу заставить его работать идеально?
Примечание: Я пробовал много других способов, но не смог сделать это как ...
this.parentElement.parentElement
this.parentNode.parentNode
this.closest(form)