Ajax .done() 未检测到 form.submit
Ajax .done() not detecting form.submit
我正在使用 ajax 从另一个文件附加一个表单,它是一个常规表单,由这个 onclick 事件触发:
<a href="javascript:void(0);" class="remitir" title="Reemitir Solicitud" data-id="'.$value['idsolicitud'].'"><i class="fas fa-lg fa-retweet"></i></a>
后面的jquery是:
$('.remitir').on('click', function (e) {
e.preventDefault();
var id = $(this).data('id');
remiteSolicitud(id);
});
这里是 AJAX 代码
function remiteSolicitud(x){
$.ajax({
type: 'POST',
url: 'anotherFile/',
data: { id: x },
cache: false,
beforeSend: function () {
$(".page-loader-wrapper").fadeIn();
},
success: function (e) {
$('#myModal').modal('show');
$('.modal-body').html(e);
},
complete: function () {
$(".page-loader-wrapper").fadeOut();
}
}).done(function () {
$("#formID").submit(function (event) {
alert("Handler for .submit() called.");
event.preventDefault();
});
});
}
现在我遇到的问题是 .done() 函数在我提交表单并重新加载页面时未检测到。
有人知道它会是什么吗?我在另一个文件中有完全相同的代码并且它有效。
您不需要在回调中附加事件,只需在执行请求之前附加它即可。
I'm appending a form from another file with ajax
因此您需要使用事件委托 .on()
因为您的表单是动态添加到 DOM :
$("body").on("submit", "#formID", function (event) {
event.preventDefault();
alert("Handler for .submit() called.");
});
$.ajax({
type: 'POST',
url: 'anotherFile/',
data: { id: x },
cache: false,
beforeSend: function () {
$(".page-loader-wrapper").fadeIn();
},
success: function (e) {
$('#myModal').modal('show');
$('.modal-body').html(e);
},
complete: function () {
$(".page-loader-wrapper").fadeOut();
}
});
只需执行调用 ajax 的提交表单事件。
$("body").on("submit", "#formID", function (event) {
event.preventDefault();
//put your ajax call here
alert("Handler for .submit() called.");
});
我正在使用 ajax 从另一个文件附加一个表单,它是一个常规表单,由这个 onclick 事件触发:
<a href="javascript:void(0);" class="remitir" title="Reemitir Solicitud" data-id="'.$value['idsolicitud'].'"><i class="fas fa-lg fa-retweet"></i></a>
后面的jquery是:
$('.remitir').on('click', function (e) {
e.preventDefault();
var id = $(this).data('id');
remiteSolicitud(id);
});
这里是 AJAX 代码
function remiteSolicitud(x){
$.ajax({
type: 'POST',
url: 'anotherFile/',
data: { id: x },
cache: false,
beforeSend: function () {
$(".page-loader-wrapper").fadeIn();
},
success: function (e) {
$('#myModal').modal('show');
$('.modal-body').html(e);
},
complete: function () {
$(".page-loader-wrapper").fadeOut();
}
}).done(function () {
$("#formID").submit(function (event) {
alert("Handler for .submit() called.");
event.preventDefault();
});
});
}
现在我遇到的问题是 .done() 函数在我提交表单并重新加载页面时未检测到。
有人知道它会是什么吗?我在另一个文件中有完全相同的代码并且它有效。
您不需要在回调中附加事件,只需在执行请求之前附加它即可。
I'm appending a form from another file with ajax
因此您需要使用事件委托 .on()
因为您的表单是动态添加到 DOM :
$("body").on("submit", "#formID", function (event) {
event.preventDefault();
alert("Handler for .submit() called.");
});
$.ajax({
type: 'POST',
url: 'anotherFile/',
data: { id: x },
cache: false,
beforeSend: function () {
$(".page-loader-wrapper").fadeIn();
},
success: function (e) {
$('#myModal').modal('show');
$('.modal-body').html(e);
},
complete: function () {
$(".page-loader-wrapper").fadeOut();
}
});
只需执行调用 ajax 的提交表单事件。
$("body").on("submit", "#formID", function (event) {
event.preventDefault();
//put your ajax call here
alert("Handler for .submit() called.");
});