Chrome 上的 Jquery Form.submit() 有效,但在 Firefox 中无效

Posted

技术标签:

【中文标题】Chrome 上的 Jquery Form.submit() 有效,但在 Firefox 中无效【英文标题】:Jquery Form.submit() on Chrome works but not in Firefox 【发布时间】:2011-08-19 04:51:12 【问题描述】:

我有以下函数从页面收集数据,将它们全部填充到“数据”变量中,将其附加到表单然后提交。

 $(document).ready(function () 
$('#content-tab .submit').click(function () 
    var data = champion: window.selectedChampion, runes: runes, masteries: masteries, items: items, skillingOrders: skillingOrders, chapters: chapters, title: $('#guide_title').val();
            data = JSON.stringify(data); 
            $("<form method='post'>").append($('<input type="hidden" name="data" id="data">').val(data)).submit();
    );
);

页面上有一个div,点击时会触发这个:

<div class='button pointer submit'>Submit</div>

在 Chrome 中测试时一切正常。表单提交然后重定向到一个页面,就像计划的那样。但是在 Firefox(第 5 和第 6 版)中进行测试时,单击 div 没有任何作用。纳达。齐尔奇。我想知道 Firefox 出了什么问题?任何帮助将不胜感激。谢谢。

【问题讨论】:

'#content-tab .submit' 选择器是否在 Firefox 中选择任何内容。用alert($('#content-tab .submit').size());查看它 @russau 它返回一个“1”,所以是的。 【参考方案1】:

我会在提交之前尝试将表单添加到 DOM。

$('#content-tab .submit').click(function() 

    var data = 
        champion: window.selectedChampion,
        runes: runes,
        masteries: masteries,
        items: items,
        skillingOrders: skillingOrders,
        chapters: chapters,
        title: $('#guide_title').val()
    ;
    data = JSON.stringify(data);
    var $form = $("<form method='post'>").append($('<input type="hidden" name="data" id="data">').val(data));
    $form.appendTo("body").submit();

);

【讨论】:

嗨 karim79,很抱歉在我的示例代码中遗漏了这一点。上面的函数已经包含在 $(document).ready(function() xxx ); 啊,那个 .appendTo() 对我有用。我曾使用 .clone() 复制表单并将一些字段放入规范表单而不显示用户,但 FireFox 不会正确提交,直到我将其添加到 DOM (当然显示:无) @karim79 我刚刚遇到了这个问题。似乎创建了一个表单元素而不是将其添加到 dom 中,然后使用 .submit() 在 Chrome 中有效,但在 IE 或 Firefox 中无效——您需要将其添加到 dom 中。这有什么原因,或者只是 Chrome 所做的一件古怪的事情?

以上是关于Chrome 上的 Jquery Form.submit() 有效,但在 Firefox 中无效的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 上的音频 jQuery 和 currentTime

jQuery 滚动事件 - 检测元素滚动到视图中 - Chrome 上的性能不佳

Chrome 37.0.2062.120 m / Webkit 上的 jQuery animate()?

fadeTo 与 Jquery 在 Retina Macbook Pro 上的 Chrome 中不起作用

可拖动的 jquery ui 触摸防止专注于 Chrome 上的输入

Chrome 上的 Jquery Form.submit() 有效,但在 Firefox 中无效