IE输入文件属性未定义。

5

我有以下的输入文件标签:

<input type="file" id="handlerxhr1" />

在Mozilla中,当我运行以下jQuery代码时:
var input = $('#handlerxhr1')[0];
        $('#upload').click(function() {
            alert(input.files[0]);

        });

我得到的响应是:[object File](这很好)。

但在IE中,我得到了“input.files.0未定义”的错误。

我做错了什么?


1
尝试在IE中执行 alert(typeof(input.files));。 - Umair A.
它可能会受到IE处理JS与Firefox不同的方式的影响。你在上传按钮上放置的点击事件在Firefox上是在上传完成之后触发的,在IE上则是在上传完成之前触发的。 - Jan Dragsbaek
无法实现,因为我在文档准备就绪时声明了变量input,而在它加载后我点击了“#upload”按钮。 - ShaneKm
2个回答

6

26
什么是跨浏览器选项? - Kevin Beal
2
在IE9中是否有任何外部库来处理文件? - Sajith

4
这看起来足够好了...
$(function() {
    var input = $('#handlerxhr1')[0];         
    $('#upload').click(function() {             
        alert(input);          
    }); 
});

不确定您是否想要这样的东西:
$(function() {
    var input = $('#handlerxhr1')[0];         
    $('#upload').click(function() {             
        var x = $('input[type=file]:eq(0)');
        alert(x);
    }); 
});

2
$('#handlerxhr1')[0]$('#handlerxhr1') 是相同的,因为 jQuery 返回匹配元素的数组。它与 files[0] 不是相同的东西。 - NibblyPig

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接