2012-01-25 111 views
1

当用javascript提交表单时使用onchange事件chrome和ff工作,但是没有。 用于IE的dev的控制台显示:IE javascript表单提交不起作用

SCRIPT5: Access is denied. 
jquery-1.7.1.js, line 3175 character 6 

实施例:http://jsfiddle.net/7ru3M/4/

编辑:更新的例子。它可以直接使用表单,但如果使用我创建的链接来选择文件,则不起作用。

编辑2:http://jsfiddle.net/v84eh/3/只使用JavaScript仍然无法正常工作。点击“浏览”会正常运行脚本,点击“上传文件”不会。

+0

我试了一下,它的工作。你使用的是什么版本的IE? –

+0

其与IE8及更高版本一起工作..你在哪个版本? – GustyWind

+0

你是从不同的域加载jQuery吗?像CDN或什么的? – sdleihssirhc

回答

0

您的表单不适用于IE 7及以下版本的原因是因为IE不会为您的FILE输入启动CHANGE事件。所有其他浏览器都能正确启动onChange。你不只是讨厌IE? :)

无论如何,这里就是我想要使用jQuery做:

$(document).ready(function(){ 

    if (jQuery.browser.msie){ 
    // IE is created by retarded programmers and can't 
    // detect file input change 
    // Since IE suspends timeouts while the file dialog is open, 
    // the submitForm is called AFTER the dialog closes 
    $('#filesToUpload').bind('click', function(){ 
     setTimeout(submitForm, 0); 
    }); 
    } else { // Other normal browsers can do stuff properly 
    $('#filesToUpload').bind('change', submitForm); 
    } 

    var submitForm = function(){ 
    $('form[name="attachmentUploader"]').submit(); 
    } 
}); 
+0

谢谢你的回应,但我正在运行的IE 9 ..和onchange,即使发射IE9它只是抛出和调用submit()函数后发生错误。 –

+0

@Adam - 在IE9中和我一样的问题;) –