我正在开发 AJAX 登录系统。现在,当用户点击一个链接时,登录表单会在用户点击“登录”链接时动态加载。因为我为此使用 AJAX,所以我想防止在单击提交按钮时实际提交表单。我尝试将以下代码作为我的加载函数的一部分,表单加载正确,但表单仍然正常提交。
$('#loginBox').load('loginform.php');
$('#loginBox form').submit(function(event) {
event.preventDefault();
});
我该如何解决这个问题?
最佳答案
jQuery.load 是一个异步函数。
这意味着当您尝试匹配“#loginBox 表单”时,该表单可能(还)不可用。 为确保您的代码在加载表单后执行,您必须将代码作为回调函数传递以进行加载。
$('#loginBox').load("form.html", function() {
$('#loginBox form').submit(function(event) {
event.preventDefault();
});
});
顺便说一句 - 在您的情况下,使用 event.preventDefault() 或 return false 并不重要。它们都会阻止您提交表单。 (参见 event.preventDefault() vs. return false)
关于javascript - 如何阻止动态加载的表单使用 jquery 提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127704/