javascript - JQuery查找和最近找不到最近的输入字段
问题描述
我通过 Ajax 动态循环遍历一些数据,然后将它们显示在表格中。<tr>
如您所见,我有多个行或HeaderLine和Customerinfo。我感兴趣的是CustomerInfo
,我正在尝试做的事情是当单击按钮时,检查哪些输入字段是空的或没有值而不是发出警报并查找我使用 jQueryfind()
和closest()
方法的输入字段或元素,但是对于某些原因它找不到任何元素。
谁能帮我解决这个问题?
用于在发送到服务器之前检查空输入字段的 JavaScript:
<script>
function AnmodomRMA(e) {
var tr = $(e).closest("table").find(".CustomerInfo");
var email = tr.find('input.Email').val();
var telefon = tr.find('input.Telefonnummer').val();
if (email === "") {
alert("Input is Empty:" + email);
return false;
}
if (telefon === "") {
alert("Input is Empty:" + telefon);
return false;
}
var formdata = $("select, textarea,input").serializeArray();
$.ajax({
"url": '@Url.Action("AutoRMAAnmoding", "User")',
"method": "POST",
"data": formdata,
"dataType": "json",
success: function (data) {
console.log(data);
},
error: function () {
console.log('something went wrong - debug it!');
}
});
}
</script>
用于加载数据的 JavaScript(动态到表中):
<div class="card-body">
<table class="table">
<tbody id="ResultProduct"></tbody>
</table>
<div id="AppendBtnRMA">
</div>
</div>
<script>
$.ajax({
type: "GET",
url: "/User/serializeItemLineByID" + 1,
dataType: 'json',
success: function (result) {
$.each(result.findclosedorders, function (ii, e) {
var guid = uuidv4();
rows += '<tr class="HeaderLine">';
rows += '<td>some data</td>';
rows += '</tr>';
rows += '<tr class="CustomerInfo">'
rows += '<input type="hidden" name="model.InsertRMALists.Index" value="' + guid + '" />';
rows += '<td><label>Telefonnummer</label><input name="model.InsertRMALists[' + guid + '].Telefonnummer" id="Telefonnummer" type="tel"></td>';
rows += '<td><label>E-mail</label><input name="model.InsertRMALists[' + guid + '].Email" id="Email" type="text"></td>';
rows += '</tr>';
});
var btnAppend = "";
btnAppend += '<button onclick="AnmodomRMA(this);">Create RMA</button>';
$("#AppendBtnRMA").append(btnAppend);
$("#ResultProduct").append(rows);
},
})
</script>
解决方案
感谢所有帮助:)
以下是我如何解决这些问题:
- 向输入字段添加一个类。
- 因为按钮它在桌子外面,我必须选择桌子周围最近的元素,而不是找到<tr>
像:
var tr = $(e).closest(".card-body").find("tr.section");
然后循环遍历该元素,我想检查它是否为空:
$(tr).each(function (i, el) {
var t = $(el).find('input.Telefonnummer').val();
if (t ==="") {
alert("empty");
}
});
推荐阅读
- python - Python PyQt5的烦恼,与QPushButton和QmenuBar有关
- c# - 获取 ItemsSource 作为 IList
- r - R中多项逻辑回归的对数似然函数计算
- javascript - Discord.js - 获取 GuildMember 的 displayName 给我一个 TypeError
- java - Java双重检查锁定代码解释
- mysql - 将数据加载到数据表中时出现 Powershell 日期错误
- python - 如何解决卤化物约束违规问题(在 Python 中)
- github - GitHub API 创建回购返回 403?
- sql - 查询每季度的运行总增长
- unity3d - Unity WebGL 视频文件格式