问题描述如下:
在js中构建了一个form,因为我需提交大量数据到后台处理并返回html页面到窗口,之前用$.post();做过,但是返回的html代码中的js代码加载不了,原因也没有去深入研究,如果有大神知道还麻烦在评论中给我讲解下。回到正题,下面是之前写的js,在IE,Google中没有问题,正常提交并返回页面,但是在火狐中点击无反应。
//构造form表单,发送post请求
var pForm = document.createElement("form");
pForm.method = "post";
pForm.action = "persGetBatcSend.do";
//组装参数,发送请求
for(var i=0;i<persIds.length;i++){
var input = document.createElement("input");
input.name="orderIdList";
input.value=persIds[i].id;
$(pForm).append(input);
}
pForm.submit();
纠结了半天,大部分资料表明这是Firefox的一种安全策略,于是各种尝试,最终解决方案如下
//构造form表单,发送post请求
var pForm = document.createElement("form");
pForm.method = "post";
pForm.action = "persGetBatcSend.do";
//组装参数,发送请求
for(var i=0;i<persIds.length;i++){
var input = document.createElement("input");
input.name="orderIdList";
input.value=persIds[i].id;
$(pForm).append(input);
}
pForm.id='smbForm';
$("#batchDiv").empty().append(pForm);//添加到隐藏div中
$("#smbForm").submit();
总结:在火狐浏览器中只有当页面中存在form时,submit();方法才会被激活。
高手望请留下更官方的解释,万分感谢!
点关注,不迷路
文章每周持续更新,可以微信搜索「 十分钟学编程 」第一时间阅读和催更,如果这个文章写得还不错,觉得有点东西的话 ~求点赞👍 求关注❤️ 求分享❤️
各位的支持和认可,就是我创作的最大动力,我们下篇文章见!