【发布时间】:2014-07-04 03:46:51
【问题描述】:
我有一个具有以下布局的视图 父 View 由几个 PartialView 组成。其中之一是一个列表,其中每个项目都有一个相应的编辑按钮,该按钮将项目加载到另一个 PartialView,但这是通过 ajax 加载到模式引导对话框中。
通过点击编辑按钮,部分视图在模态对话框中加载没有问题,但在提交对话框后,编辑按钮停止触发事件并且模态不再加载,我的意思是,编辑按钮的单击处理程序停止在职的。
我相信这是因为在发布模态 im ajax 后重新加载包含编辑按钮的列表部分视图,因此我需要重新绑定事件。但是这样做会在编辑点击事件和模态表单提交之间形成循环调用?
父视图中的脚本:
$(".btn.mylink").on("click", function () {
var id = $(this).data('id');
var url = "/SalidaDetalle/Edit/" + id;
$.get(url, function (data) {
$(".modal-body").html(data);
$('#myModal').modal('show');
$(".edit-detail").on('submit', function () {
$.post($(this).attr('action'),
$(this).serialize(),
function (data, status) {
$('#myModal').modal('hide');
$("#details").html(data);
}).error(function (error, status, a, b) {
writeError('msgError', 'Error processing request. Please check errors and try again!');
$('.modal-body p.body').html(error.responseText);
});
return false;
});
});
});
注意: 这个问题与this one有关
【问题讨论】:
-
必须将
$(".edit-detail")放入$.get(url, function (data) {中吗?我相信这会给您的脚本带来一些问题 -
@Se0ng11,这是为加载 ajax 的模态表单连接提交事件的方法。
-
通过ajax刷新表单提交列表部分视图后?
-
@EhsanSajjad,是的,我就是这样做的。基于 ChrisPratt 在您对另一个问题的回答中的评论。我应该在这里使用委托事件吗?
-
@Elio.Batista 你必须在这个场景中编写委托事件,因为元素是在 DOM 加载后动态创建的
标签: jquery ajax asp.net-mvc twitter-bootstrap asp.net-mvc-4