javascript - onSubmit 未在加载 AJAX 的表单上触发

标签 javascript ajax forms dom-events

我使用 AJAX 将包含表单的外部 HTML 文件加载到另一个 HTML 文件中。表单 HTML 看起来像这样:

<form id="..." name="..." onsubmit="postUsingAJAX(x,y,x); return false;">

加载正常。但是,提交表单时不会执行 onSubmit 代码,这与提交按钮上的 onClick 处理程序相同;似乎没有事件监听器被触发。这是通过 AJAX 加载 HTML 时的工作方式还是我做错了什么?

一个可能的解决方法是:

theFormObject.addEventListener('submit', function...)

但我不知道如何让表单在触发回调后不提交。我怎样才能让它等待返回值(或者更确切地说,无论回调函数中发生什么,都让它“返回 false”)?

有什么想法吗?

最佳答案

它看起来像是函数 postUsingAJAX 中的一个错误。代码“return false”不会执行。要在出错后继续正常工作,您应该使用 try..catch 语句。示例:

function postUsingAJAX() {
    try {
        // dangerous code
    } catch (e) {
        // report about error
    }
}

<form onsubmit="postUsingAJAX(); return false;">

关于javascript - onSubmit 未在加载 AJAX 的表单上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1474077/

相关文章:

html - 无法调整 PayPal 按钮上方和下方的填充/间距?

typescript - 如何允许 `null` 作为 Yup 模式中的默认值,同时仍然不允许提交 `null`?

javascript - 文件夹作为模块,文件夹内作为模块 NodeJS

javascript - react 星级评级组件

javascript - Ember 操作阻止设置复选框值

javascript - 形成 PreventDefault 然后再次激活不起作用

javascript - Rails API - AJAX 帮助程序

javascript - 为什么在 TR 标记前 append 一个空格或换行符会导致它位于 tbody 之外?

php - 使用 Laravel 对重复电子邮件进行 Jquery 验证

PHP MySQLi 不插入到表中