javascript - 如何阻止动态加载的表单使用 jquery 提交?

标签 javascript jquery

我正在开发 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/

相关文章:

javascript - JSON.parse数据有中文但输出变成 "undefined"

javascript - 如何正确设置 Ejs Partials

javascript - 仅当站点位于本地主机时、仅当启用 JavaScript 时、仅在 IE8 模式下,IE8 才会在重新加载时崩溃

javascript - 按键事件不会用 $().load ("page.html") jQuery 激活

javascript - ionic 框架 - 无法阻止 ion-toggle 切换

javascript - 让复选框延迟被选中

javascript - 从具有相同类的多个 div 元素中获取多个 .attr 值

javascript - 如何获取 JSON 并使用 jQuery 将其推送到 HTML 中?

javascript - 在 summernote 编辑器中用插入替换选定的文本

javascript - jQuery each 查找 attr 的标签不起作用