我正在使用AJAX登录系统。现在,当用户单击链接时,当该人单击“登录”链接时,将动态加载登录表单。由于我为此使用了AJAX,因此我想防止在单击“提交”按钮时实际提交表单。我尝试将以下代码作为我的加载功能的一部分,并且正确加载了表单,但是表单仍然可以正常提交。
$('#loginBox').load('loginform.php');
$('#loginBox form').submit(function(event) {
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
jQuery.load是一个异步函数。
这意味着,当您尝试匹配“ #loginBox表单”时,该表单可能尚不可用。为了确保在加载表单后执行代码,必须将代码作为要加载的回调函数传递。
$('#loginBox').load("form.html", function() {
$('#loginBox form').submit(function(event) {
event.preventDefault();
});
});
Run Code Online (Sandbox Code Playgroud)
顺便说一句-就您而言,使用event.preventDefault()或返回false都没有关系。它们都会阻止您提交表单。(请参阅event.preventDefault()与return false)