我想使用 jquery 提交如下;
$("#formid").submit();
它在除 IE6 之外的所有浏览器中都能完美运行。
如何让它在 IE6 中工作?
我想使用 jquery 提交如下;
$("#formid").submit();
它在除 IE6 之外的所有浏览器中都能完美运行。
如何让它在 IE6 中工作?
您的表单中可能有一个<input name="submit" />
地方,它会覆盖 IE 中表单的“提交”功能。
编辑:
我已经在其他一些浏览器中进行了测试。所有主流浏览器的最新版本似乎都受到此问题的影响。
底线:永远不要将您的输入命名为“提交”或表单元素的任何其他默认属性或方法(例如“动作”或“重置”)。有关完整概述,请参阅MDC。
当我即将通过 A 元素提交表单时,我遇到了类似的问题。我已将 href 属性设置为“javascript:;” 让主 jQuery 脚本处理实际提交,但它在 IE6 中不起作用。
jQuery主脚本:
$(".submitLink").click(function(){
$(this).parent()[0].submit();
$(this).addClass("loading");
});
我的解决方案是将 href 属性从“javascript:;”更改为 到 ”#”。
你可以试试$("#formid").trigger("submit")
,虽然我怀疑它会给你一个不同的结果。
我最近遇到了一个类似的问题,我在 ASP.NET 服务器表单中创建了一个“伪表单”(所以我不能使用另一个表单标签),我想将它发布到另一个域而无需编写执行远程发布的服务器端代码。简单的答案 - 即时创建表单并提交。在良好的浏览器中工作...
经过一些试验和磨难,我意识到除非正在提交的表单已添加到 DOM,否则 IE 将无法按预期工作(真是令人惊讶)。所以,这是我的解决方案。我希望它对你们中的一些人有所帮助。请注意,我所有的输入和我的提交都在同一个容器中。“.post-to”是带有 URL 的隐藏输入。
$(".post-form").click(function(ev) {
var postto = $(this).siblings(".post-to").val();
var form = document.createElement("form")
$(form).attr("id", "reg-form").attr("name", "reg-form").attr("action", postto).attr("method", "post").attr("enctype", "multipart/form-data");
$(this).siblings("input:text").each(function() {
$(form).append($(this).clone());
});
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
return false;
});
最终,它是一种享受。
不要忘记返回false;如果你在标签上
button
在您的表单中添加一个type="submit"
参考。
...
$('.bt_ok').bind('click', function() {
$('#form_autosuggest').submit();
return false;
});
...
之后添加:return false;
对于 IE6
只需添加一个
window.setTimeout(function(){
$("#formid").submit();
}, 300);