对于Internet Explorer 8甚至9来说,这个简单的JavaScript代码段似乎太复杂了:
// Why on the (expletive) hell does Internet Explorer exist?
$('<form/>'>.attr('action', '..') // or ../index.php
.attr('method', 'post')
.append(hiddenParam('user', $('#name').val())
.append(hiddenParam('pass', cryptoFunc($('#pswd').val())
.submit().remove();
我的代码是否有任何与重写无关的代码? (我的网站上有很多这些ad hoc jQuery生成的表单。)
答案 0 :(得分:4)
如果您在.appendTo(document.body)
之前添加.submit
会怎样? E.g:
$('<form/>').attr('action', '..') // or ../index.php
.attr('method', 'post')
.append(hiddenParam('user', $('#name').val())
.append(hiddenParam('pass', cryptoFunc($('#pswd').val())
.appendTo(document.body)
.submit().remove();
如果不这样做,请尝试给浏览器一点时间来吸气:
var form = $('<form/>');
form.attr('action', '..') // or ../index.php
.attr('method', 'post')
.append(hiddenParam('user', $('#name').val())
.append(hiddenParam('pass', cryptoFunc($('#pswd').val())
.appendTo(document.body);
setTimeout(function() {
form.submit().remove();
}, 0);