在日常开发中,有时候在写web 应用的时候,需要临时动态构造一个form并提交。
动态创建form表单的方法:/**
* 动态创建From表单
* @author xiaochuan
* @date 2016年03月26日
*/
function createForm(){
// 取得要提交页面的URL地址
var url = "{:url('add')}";
// 取得要提交的参数
var val_id = $("#inputId").val();
var val_name = $("#inputName").val();
// 创建Form
var form = $('
');form.attr('action', action); // 设置Form表单的action属性
form.attr('method', 'post'); // 设置Form表单的method属性
form.attr('target', '_self'); // 设置Form表单的target属性
// 创建input
var input_id = $('');
input_id.attr('value', val_id); // 设置input的value属性
var input_name = $('');
input_name.attr('value', val_name); // 设置input的value属性
// 把input添加到表单中
form.append(input_id);
form.append(input_name);
// 把表单添加到document.body中(不然在谷歌浏览器中会报错)
$(document.body).append(form);
// 提交表单(当然也可以通过AJAX来提交了,只要你喜欢)
form.submit();
return false;
}
如果不加上:$(document.body).append(form);
问题:
那么在 chrom 下 控制台 里输出了 Form submission canceled because the form is not connected 异常。
原因:
HTML标准规定如果form表单没有被添加到document里,那么form表单提交将会被终止。
在Chrome56之前的版本是不符合标准的,Chrome56修复了这个问题,让form表单提交符合标准要求。不加的话会报异常。
解决:
就是把form表单添加到document后再提交。$(document.body).append(form);
浏览器启用弹出窗口过滤功能,将无法跳转到下载页。在浏览器地址栏右边符号提示处点击允许就可以了!
郑重声明:
1、本站源码仅供个人学习研究和交流使用,请于下载后二十四小时内删除
2、本站大多资源来源于互联网、用户分享,仅供学习交流使用,本站不提供任何技术支持
3、本站联系方式Email:admin@youhutong.com ,收到邮件会第一时间处理。
4、如侵犯到任何版权问题,请立即告知本站(立即在线告知),本站将及时删除并致以最深的歉意