加载带有.load的表单会终止Firefox中的提交按钮

加载带有.load的表单会终止Firefox中的提交按钮,firefox,jquery,jquery-forms-plugin,Firefox,Jquery,Jquery Forms Plugin,我目前正在将多个表单加载到网页中,其中包含: $(document).ready(function () { $('#content').load('php_script.php', function() { $(this).find('#someForm').ajaxForm(function() { alert('Success!'); }); $(this).find('.someOtherForm').aja

我目前正在将多个表单加载到网页中,其中包含:

$(document).ready(function () {
    $('#content').load('php_script.php', function() {
        $(this).find('#someForm').ajaxForm(function() {
            alert('Success!');
        });
        $(this).find('.someOtherForm').ajaxForm(function() {
            alert('Success!');
        });
    });
});
这适用于Chrome、Chrome和IE,他们加载表单,一切正常(单击submit向表单操作中定义的php脚本发送请求,该脚本将向数据库添加内容,并显示警报对话框)。在Firefox(v10.0.2)中,这段代码将表单加载到DOM中并显示它们,但是在任何表单上单击submit时都不会发生任何事情

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

$(document).ready(function () {
    $('#content').load('php_script.php');
});
产生几乎相同的结果,不同之处在于用户被发送到定义为动作的脚本(除了Firefox,在Firefox中什么也不发生)


如何使Firefox不关闭提交按钮?

我觉得上面的代码没问题

  • 如果有任何错误,您是否查看过firebug?也许有一个相互冲突的Id或者别的什么

  • 也许表单还没有完全加载到dom中,也许值得尝试一下实时绑定

  • 在文档中找到:

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


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

    我解决了它,我这边的错误HTML:

    <table><form ...>
        <tr>...</tr>
    </form></table>
    
    
    ...
    
    相反,它应该看起来像:

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

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

    1。firebug中唯一的错误是我的CSS3渐变。该页面是有效的XHTML trans。没有javascript错误。2.我去看看,谢谢:)。3.在Firefox和Chrome中检查表单时,表单是相同的。虽然php_script.php的输出中没有head、html或body,但这会在加载时产生一些不可预见的影响吗?我认为这不会导致任何问题,请尝试一下实时绑定。我已经修复了它,请参阅我的答案。再次感谢您的回答:)您可以将此答案作为更新写入您的问题中。不需要写单独的答案。