如何在jquery中清除输入文件字段?

时间:2015-02-08 20:06:11

标签: javascript jquery html

在jquery中我试图清除一个字段,但如果我这样做,则会抛出一个错误。它确实使该字段变空,但也会引发错误。我该如何解决这个问题?

由于

HTML

<input name="file" type="file" accept="image/*">

JS

var input = $("#profile-edit-form").find("input[name=file]");
var fileName = input.val();

if(fileName) { // returns true if the string is not empty
    input.replaceWith(input.val('').clone(true));
}

ERROR

NotFoundError: Node was not found                  
-jquery.min.js:3:0

2 个答案:

答案 0 :(得分:4)

您为什么要尝试clone

这样做应该清除字段:

input.val('');

这是一个小提琴演示:

http://jsfiddle.net/kcbc701c/

编辑:

是的,在旧版浏览器中可能存在以上问题,它值得测试,但对于我来说,它适用于现代浏览器,而你说的另一个选项并不适用于Firefox。

这里是两个小提琴,所以你可以测试:http://jsfiddle.net/frrc7bLy/

答案 1 :(得分:0)

虽然jQuery可能足够宽容来处理它,但记录的格式是:

var input = $("#profile-edit-form").find('input[name="file"]');

请注意选择器中“file”周围的引号。