我有一个充满行的表格,其中包含 <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)
蝴蝶不菲
相关分类