0

我目前正在将几个表单加载到一个网页中:

$(document).ready(function () {
    $('#content').load('php_script.php', function() {
        $(this).find('#someForm').ajaxForm(function() {
            alert('Success!');
        });
        $(this).find('.someOtherForm').ajaxForm(function() {
            alert('Success!');
        });
    });
});

这适用于加载表单的 Chrome、Chromium 和 IE,并且一切正常(单击提交向表单操作中定义的 php 脚本发送请求,该脚本将内容添加到数据库,并显示警报对话框)。在 Firefox (v10.0.2) 中,此代码将表单加载到 DOM 中并显示它们,但是当单击任何表单时,什么都没有发生。

起初我怀疑ajaxForm,但将上面的代码更改为:

$(document).ready(function () {
    $('#content').load('php_script.php');
});

产生几乎相同的结果,不同之处在于用户被发送到定义为操作的脚本(Firefox 除外,没有任何反应)。

如何让 Firefox 不杀死提交按钮?

4

2 回答 2

1

我解决了,我这边的 HTML 不好:

<table><form ...>
    <tr>...</tr>
</form></table>

相反,它应该看起来像:

<form ...><table>
    <tr>...</tr>
</table></form>

验证器没有捕捉到这一点,因为它是通过 jQuery 加载的(我忘记验证提供表单的页面),并且 Firefox 出错了。

于 2012-02-29T08:51:25.577 回答
0

上面的代码对我来说看起来不错......

  1. 如果有任何错误,您是否看过萤火虫?也许有一个冲突的 ID 或其他东西。

  2. 也许表单还没有完全加载到 dom 中,可能值得尝试实时绑定

  3. 在文档中找到了这个:

...jQuery 使用浏览器的 .innerHTML 属性来解析检索到的文档并将其插入到当前文档中。在此过程中,浏览器通常会从文档中过滤元素,例如 、 或 元素。因此,由 .load() 检索到的元素可能与浏览器直接检索到的文档不完全相同......

如果您检查表单,它与其他浏览器中的相同吗?

于 2012-02-28T12:08:26.887 回答