关于jquery.unobtrusive-ajax.js 回调函数无效 的解决办法

今天新项目的时候写MVC的时候使用到了Ajax.BeginForm,发现它的回调函数怎么都不响应,最后在网上查找了相关资料跟自己写的一些代码测试,

总算找到了原因:jquery.unobtrusive-ajax.js内部会使用到jquery的live()方法,而引入高版本的jquery已经移除了live()的方法。

 

解决方式有2个

    ①:引入支持live()方法的jquery版本

    ②: 查找jquery.unobtrusive-ajax.js中的live关键字 (有4个)  将live关键字替换成on   使用高版本jquery的on()方法。

         并将脚本语言放到文档底部运行即可(注意一定要在文档底部运行!!!)。

        如果不想在文档底部运行JS,则需要修改jquery.unobtrusive-ajax.js内部刚刚替换的on方法绑定方式

        例:  替换完后live之后 on方法为

$("form[data-ajax=true]").on("submit", function (evt) {

      var clickInfo = $(this).data(data_click) || [];

       evt.preventDefault();

 if (!validate(this)) {

return;

}

asyncRequest(this, {

url: this.action,

type: this.method || "GET",

data: clickInfo.concat($(this).serializeArray())

});

});

需要更改为:

$(document).on("submit", "form[data-ajax=true]",function (evt) {

      var clickInfo = $(this).data(data_click) || [];

       evt.preventDefault();

 if (!validate(this)) {

return;

}

asyncRequest(this, {

url: this.action,

type: this.method || "GET",

data: clickInfo.concat($(this).serializeArray())

});

});

以上就是问题以及解决方案,如有不对的地方,欢迎评论指正。

转载于:https://www.cnblogs.com/owlCode/p/7010324.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法提供您请求的文件,因为我是一个文本聊天机器人,无法上传或分享文件。但是,我可以给您提供一些使用 Ajax 和 jQuery 实现表格增删改查的基本步骤。 1. 引入 jQuery 库和 Ajax 库 在 HTML 页面中,需要引入 jQuery 库和 Ajax 库,例如: ```html <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/jquery-ajax-unobtrusive/3.2.6/jquery.unobtrusive-ajax.min.js"></script> ``` 2. 创建表格 在 HTML 页面中,创建一个表格,并根据需求添加相应的表头和数据行。 ```html <table id="myTable"> <thead> <tr> <th>编号</th> <th>姓名</th> <th>年龄</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>张三</td> <td>20</td> <td><button class="editBtn">编辑</button><button class="deleteBtn">删除</button></td> </tr> <tr> <td>2</td> <td>李四</td> <td>22</td> <td><button class="editBtn">编辑</button><button class="deleteBtn">删除</button></td> </tr> <!-- 其他数据行 --> </tbody> </table> ``` 3. 实现数据的增删改查 在 JavaScript 文件中,使用 Ajax 和 jQuery 实现对表格数据的增删改查操作。例如: ```javascript // 查询数据 function queryData() { $.ajax({ url: '/api/data', type: 'GET', dataType: 'json', success: function (data) { // 将数据渲染到表格中 renderTable(data); } }); } // 渲染表格 function renderTable(data) { var html = ''; $.each(data, function (index, item) { html += '<tr>'; html += '<td>' + item.id + '</td>'; html += '<td>' + item.name + '</td>'; html += '<td>' + item.age + '</td>'; html += '<td><button class="editBtn">编辑</button><button class="deleteBtn">删除</button></td>'; html += '</tr>'; }); $('#myTable tbody').html(html); } // 添加数据 function addData(data) { $.ajax({ url: '/api/data', type: 'POST', data: data, dataType: 'json', success: function () { // 添加成功后重新查询数据 queryData(); } }); } // 编辑数据 function editData(id, data) { $.ajax({ url: '/api/data/' + id, type: 'PUT', data: data, dataType: 'json', success: function () { // 编辑成功后重新查询数据 queryData(); } }); } // 删除数据 function deleteData(id) { $.ajax({ url: '/api/data/' + id, type: 'DELETE', dataType: 'json', success: function () { // 删除成功后重新查询数据 queryData(); } }); } // 监听添加按钮的点击事件 $('#addBtn').click(function () { // 获取表单数据并添加到数据库中 var data = $('#addForm').serialize(); addData(data); }); // 监听编辑按钮的点击事件 $('#myTable').on('click', '.editBtn', function () { // 获取当前行的数据并填充到编辑表单中 var id = $(this).closest('tr').find('td:first').text(); var name = $(this).closest('tr').find('td:eq(1)').text(); var age = $(this).closest('tr').find('td:eq(2)').text(); $('#editId').val(id); $('#editName').val(name); $('#editAge').val(age); // 显示编辑模态框 $('#editModal').modal('show'); }); // 监听编辑模态框的保存按钮的点击事件 $('#editModalSaveBtn').click(function () { // 获取表单数据并更新到数据库中 var id = $('#editId').val(); var data = $('#editForm').serialize(); editData(id, data); }); // 监听删除按钮的点击事件 $('#myTable').on('click', '.deleteBtn', function () { // 获取当前行的编号并删除对应的数据 var id = $(this).closest('tr').find('td:first').text(); deleteData(id); }); // 页面加载完成后查询数据并渲染表格 $(function () { queryData(); }); ``` 这样,就可以使用 Ajax 和 jQuery 实现表格的增删改查操作了。当然,具体的实现方式还需要根据需求进行整和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值