您的位置:首页 > 其它

Form submission canceled because the form is not connected 异常

2017-04-07 10:09 549 查看
转自 http://majing.io/questions/821

在项目中 用 jquery 创建了 form对象,并提交 ,在 chrom 下 控制台 里输出了 Form submission canceled because the form is not connected 异常,

搜索后 得知是 chrome修复的一个bug ,记录下来。

之前在Chrome里运行正常的代码,Chrome升级到56后报表单提交错误:

Form submission canceled because the form is not connected

代码如下:
function submitData(name) {
var form = $('<form method="post" action="updateName">'
+'<input type="submit"/>'
+'<input type="hidden" name="name" value="'+ name +'" /></form>');

$('input[type="submit"]', form).click();
}


问题解决

原因
HTML标准规定如果form表单没有被添加到document里,那么form表单提交将会被终止。
参考:Form submission algorithm
在Chrome56之前的版本是不符合标准的,Chrome56修复了这个问题,让form表单提交符合标准要求:
参考:Chrome issue 2416033002
解决方法
解决方法就是把form表单添加到document后再提交:
jQuery
$(document).append(form);


document.body.appendChild(form);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐