用JS创建form在FireFox中不能提交的问题

在一个前端页面上,需要通过 JavaScript来提交参数,使用JS创建form表单,将参数append到表单中进行提交,代码如下:
Js代码:  
  1. function loadConfig(gameUrl,skinId){  
  2.                 var temp = document.createElement("form");  
  3.                 temp.action = "${createLink(controller:'mobileConfig', action:'beforeLaunchConfig')}";          
  4.                 temp.method = "POST";  
  5.                 temp.style.visibility="hidden";  
  6.                 var opt = document.createElement("input");  
  7.                 opt.name = "gameUrl";  
  8.                 opt.id = "gameUrl";  
  9.                 opt.value = gameUrl;  
  10.                 var opt2 = document.createElement("input");  
  11.                 opt2.name = "skinId";  
  12.                 opt2.id = "skinId";  
  13.                 opt2.value = skinId;  
  14.                 temp.appendChild(opt);  
  15.                 temp.appendChild(opt2);  
  16.                 temp.submit();  
  17.             }  

 该功能在Chrome及Safari上都能成功运行,但在使用FireFox(17.0.1)时不能成功提交,经过研究发现,FireFox在提交页面表单时要求页面有完整的标签项,即<html><head><title></title></head><body><form></form</body</html>这样的标签结构。因此,将该段JS做了写小改动:

Js代码:  
  1. function loadConfig(gameUrl,skinId){  
  2.                 var pageDiv = document.getElementById("page");  
  3.                 var temp = document.createElement("form");  
  4.                 temp.action = "${createLink(controller:'mobileConfig', action:'beforeLaunchConfig')}";          
  5.                 temp.method = "POST";  
  6.                 temp.style.visibility="hidden";  
  7.                 temp.name = "loadConfigPage";  
  8.                 var opt = document.createElement("input");  
  9.                 opt.name = "gameUrl";  
  10.                 opt.id = "gameUrl";  
  11.                 opt.value = gameUrl;  
  12.                 var opt2 = document.createElement("input");  
  13.                 opt2.name = "skinId";  
  14.                 opt2.id = "skinId";  
  15.                 opt2.value = skinId;  
  16.                 temp.appendChild(opt);  
  17.                 temp.appendChild(opt2);  
  18.                 pageDiv.appendChild(temp);  
  19.                 temp.submit();  
  20.             }  

 在<body>标签内append此处创建的form表单,再进行提交就能成功了。参考博文:http://bytes.com/topic/javascript/answers/542837-document-getelementbyid-myform-submit-does-not-work

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值