我尝试将内容加载到之前使用 AJAX 加载的内容中。我把代码贴出来了
使用 load():
jQuery("#contentpage").on("submit", "#loginform", my = function() {
$("#contentpage").load("/logincheck.jsp");
alert("this is required ");
});
使用 $.ajax():
jQuery("#contentpage").on("submit", "#loginform", function() {
$.ajax({
url: '/logincheck.jsp',
success: function(data) {
$('#contentpage').html(data);
}
});
alert("this is required ");
});
#loginform
是一个加载了之前的 AJAX 请求的 HTML 表单,我使用 .on()
函数成功访问了它。
但问题是,当我提交 #loginform
而没有放置 alert('this is required')
框时,它会刷新整个页面。
此外,#contentpage
内的内容也没有改变。
但是,如果我对 alert("this is required")
执行同样的操作,则其工作正常,内容将加载到 #contentpage
中,而无需刷新整个页面。
这是一个时间问题吗? Ajax请求需要时间并且是异步的?如果我错了,请纠正我。
最佳答案
你试过这个吗?
jQuery("#contentpage").on("submit","#loginform",my=function(event){
event.preventDefault();
$("#contentpage").load("/logincheck.jsp");
alert("this is required ");
});
这至少应该阻止页面刷新,并且还可以解决其他问题。祝你好运!
关于jquery - $.ajax仅在放置alert()时才起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12332163/