首页 > 解决方案 > JQuery查找和最近找不到最近的输入字段

问题描述

我通过 Ajax 动态循环遍历一些数据,然后将它们显示在表格中。<tr>如您所见,我有多个行或HeaderLineCustomerinfo。我感兴趣的是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>

标签: javascriptjquery

解决方案


感谢所有帮助:)

以下是我如何解决这些问题:
- 向输入字段添加一个类。
- 因为按钮它在桌子外面,我必须选择桌子周围最近的元素,而不是找到<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");

            }
        });

推荐阅读