Javascript Ajax.done()未检测到form.submit
我用ajax从另一个文件中附加了一个表单,它是由以下事件触发的常规表单:Javascript Ajax.done()未检测到form.submit,javascript,jquery,html,ajax,submit,Javascript,Jquery,Html,Ajax,Submit,我用ajax从另一个文件中附加了一个表单,它是由以下事件触发的常规表单: <a href="javascript:void(0);" class="remitir" title="Reemitir Solicitud" data-id="'.$value['idsolicitud'].'"><i class="fas fa-lg fa-retweet"></i></a> 下面是AJAX代码 function remiteSolicitud(x){
<a href="javascript:void(0);" class="remitir" title="Reemitir Solicitud" data-id="'.$value['idsolicitud'].'"><i class="fas fa-lg fa-retweet"></i></a>
下面是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()函数在我提交表单并重新加载页面时没有检测到
有人知道会是什么吗?我在另一个文件中有完全相同的代码,它可以工作。您不需要在回调中附加事件,只需在执行请求之前附加它即可 我正在用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调用?您是否停止对触发Ajax请求的任何事件的处理?在
done
处理程序中有一个preventDefault
,但它对首先触发Ajax调用的任何东西都不起作用。
$("body").on("submit", "#formID", function (event) {
event.preventDefault();
//put your ajax call here
alert("Handler for .submit() called.");
});