之前在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);
Chrome报表单提交错误,Form submission canceled because the form is not connected
猜你喜欢
转载自lizhuang.iteye.com/blog/2367475
今日推荐
周排行