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 中不起作用