3

我写了这个简单的javascript代码:

$("input[type='file']").attr("value", "");

它适用于 Firefox 和 Chrome,但不适用于 IE(我在 IE9 中尝试过)

清空输入类型文件值的好方法是什么?

谢谢

4

2 回答 2

10

输入类型=文件有一些限制

你可以在这里阅读

这似乎适用于 IE8、IE9

$("input[type='file']").replaceWith($("input[type='file']").clone(true));

为了在 IE8 中进行测试,我将开发人员工具中的兼容模式更改为 IE8

编辑:

至于许多 IE hack,我认为这更好

    if($.browser.msie){
        $("input[type='file']").replaceWith($("input[type='file']").clone(true));
    } else {
        $("input[type='file']").val('');
    }
于 2012-04-26T06:17:19.803 回答
1

jQuery 文档说

从 jQuery 1.6 开始,.attr() 方法为尚未设置的属性返回 undefined。此外,.attr() 不应用于普通对象、数组、窗口或文档。要检索和更改 DOM 属性,请使用 .prop() 方法。

使用.prop()

于 2012-04-26T05:51:03.350 回答