【问题标题】:post data not working as expected in Jquery Ajax在 Jquery Ajax 中发布数据未按预期工作
【发布时间】:2017-08-12 18:07:50
【问题描述】:

我想在 Jquery 的帮助下删除记录。获取行 ID 并删除该行。当我第一次单击按钮数据删除时很好,但下次当 jquery $.post 渲染中继器表时,比单击 delte 功能上的按钮不起作用。我找不到这个问题的原因。 我的jQuery代码

$(".delButton").click(function () {
        debugger;
        alert("delclick");
        var delID = $(this).parent().parent().children().html();
        $.post("CallBacks/AddProducts.aspx", { DeleteID : delID},
           function (data, status) {

                   debugger;
                   var start = data.indexOf("###Start###") + 11;
                   var end = data.indexOf("###End###");
                   var subdata= data.substring(start,end);
                   $("#productTbody").html(subdata);

               });
           });

而我的中继器表格主类是:

  <tbody id="productTbody">

                    <asp:Repeater id="repeaterProducts" runat="server" >
                <ItemTemplate>
                    <tr>
                        <td ><%# Eval("id") %></td>
                        <td><%# Eval("Name") %></td>
                        <td><%# Eval("ColourName") %></td>
                        <td><%# Eval("GageName") %></td>
                        <td><%# Eval("Rate") %></td>
                        <td><input class="delButton" type="button" value="del"/></td>

                    </tr>
                </ItemTemplate>
            </asp:Repeater>  



                     </tbody>

第二类 AddProducts 中使用相同的中继器

  ###Start###   
               <asp:Repeater id="repeaterProducts" runat="server" >
                <ItemTemplate>
                    <tr>
                        <td ><%# Eval("id") %></td>
                        <td><%# Eval("Name") %></td>
                        <td><%# Eval("ColourName") %></td>
                        <td><%# Eval("GageName") %></td>
                        <td><%# Eval("Rate") %></td>
                        <td><input class="delButton" type="button" value="del"/></td>

                    </tr>
                </ItemTemplate>
            </asp:Repeater>  

 ###End###         

【问题讨论】:

    标签: jquery asp.net ajax repeater


    【解决方案1】:

    委托点击事件,而不是:

    $(".delButton").click(function () {
    

    做:

    $(document).on('click', '#delButton', function () {
    

    这样,事件就会绑定到文档,所以当你的元素被重新渲染时,它们仍然会被找到 - 你的点击会起作用。

    【讨论】:

    • 现在的问题是,当我点击其他事件时,即使他们没有类 .delButton,他们也会调用此函数
    • 我已经更新了我的答案以使用on,我应该首先写出来。
    • 别担心,如果回答了问题,请勾选答案。
    猜你喜欢
    • 2013-02-15
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 2021-12-30
    • 2018-01-08
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多