如何使用 jquery ajax 在 asp.net 中提交值数据表

Posted

技术标签:

【中文标题】如何使用 jquery ajax 在 asp.net 中提交值数据表【英文标题】:How to submit value datatable in asp.net using jquery ajax 【发布时间】:2021-11-21 16:47:41 【问题描述】:

我的数据表有 1 个输入列,用于输入电影租赁的返回日期,我想将该值发布到我的 ASP.NET [POST] 操作,但在发布之前,我尝试先在控制台中查看日期数据记录,并使用带有 get 方法的 url。在第一行它工作正常,但在下一行我的输入数据是空的

我的 html

<table id="newrentals" class="table table-bordered table-hover" style="width:100%">
    <thead>
        <tr>
            <th>Customer name</th>
            <th>Date Rented</th>
            <th>Date Returned </th>
            <th>Movie name</th>
            <th>Rental Price</th>
            <th>Command</th>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>

我的数据表和提交函数:

<script>
    $(document).ready(function () 
        var table = $("#newrentals").DataTable(
            ajax: 
                url: "/api/newrentals",
                method: "GET",
                dataSrc: ""
            ,
            columns: [
                
                    data: "customer.name"
                ,
                
                    data: "dateRented"
                ,
                
                    data: "dateReturned",
                    render: function (data, type, newrentals) 
                        if (data == null)
                            return "<input required id='dateReturned-id' name='dateReturned1' type='text' class='form-control'>"
                                + "< button class='btn btn-primary js-submit1' data - returned - id=" + newrentals.id + " > Returned</button > ";
                               
                        return "<input id='dateReturned' name='dateReturned' type='text' class='form-control' value=" + data + ">";
                    
                ,
                
                    data: "movie.name"
                ,
                
                    data: "movie.rentalPrice"
                ,
                
                    data: "id",
                    render: function (data,type, newrentals) 
                        return "<button class='btn btn-primary js-submit2' data-submit-id=" + data + ">Submit payment</button>";
                    
                
            ]
        );

        /////////////////////////////// SUBMIT THE TEXT BOX INPUT try to see the data first in console log ///////////////////////////
        $("#newrentals").on("click", ".js-submit1", function () 
            var button = $(this)
            bootbox.confirm("Are you sure to add return date?", function (result) 
                if (result) 
                    var dateVal = $("#dateReturned-id").val();
                    $.ajax(
                        url: "/api/newrentals/" + button.attr("data-returned-id") + "/allrent",
                        method: "GET",
                        success: function () 
                            console.log(dateVal);
                            console.log(button.attr("data-returned-id"));

                        
                    ).done(function () 
                        $("#dateReturned").val("");
                    );
                
            );
        );
        
    );
</script>

我的网页:

Rental Web page

当我尝试在除第一行之外的另一行中填充数据时,我的输入数据为空但没有出现任何错误,有人可以帮我解决这个问题吗?提前致谢

【问题讨论】:

【参考方案1】:

它仅适用于第一行的原因是因为您使用其 ID 来识别输入,但所有输入 ID 都是相同的,并且您只能在页面上拥有一个具有特定 ID 的元素。所以 JQuery 定位它找到的第一个并忽略所有其他的。

试试这个(为简洁起见,我截断了你的代码):

$("#newrentals").on("click", ".js-submit1", function () 
    const button = $(this);
    const dateVal = button.siblings('input').val();
);

【讨论】:

感谢您的解决方案,但是当我尝试它时,现在控制台日志上的值未定义,有什么建议吗?谢谢之前 @marcellusdenta 我的错误,closest() 找到了父元素,所以在这种情况下它将是td。请改用siblings()。我已经编辑了我的答案。 非常感谢您的帮助,它对我来说非常适合 如果某个答案对您有用,您可以对其进行投票和/或将其标记为已接受以表示感谢,这也有助于提高该人的声誉。 ***.com/tour

以上是关于如何使用 jquery ajax 在 asp.net 中提交值数据表的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中使用 jQuery/Ajax 发布?

如何在使用 jquery 进行 ajax 操作后清空 TINYMCE 内容

如何使用 AJAX/JQuery 调用多个 PHP 脚本?

如何使用 AJAX 自动完成触发 JQuery

jquery如何在另一个结束后使用多个ajax调用

如何使用jquery在jsp中编写ajax get? [复制]