如何让Internet Explorer了解我的ad hoc jQuery表单?

时间:2011-01-28 22:34:36

标签: jquery internet-explorer

对于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生成的表单。)

1 个答案:

答案 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);