4

可能重复:
IE 9 jQuery 未设置输入值

如果输入字段与某些条件匹配,我想重置输入字段$(this).val("");

$(".checkimgextension").on("change", function () {

var file = $(this).val();

if (some conditions){
  alert("wrong:...");
  $(this).val("");
}   

对于 Firefox,该字段设置为"",但对于 IE,该字段不会按预期更改。使用正确的功能.val("")吗?

4

1 回答 1

8

参考这个:IE 9 jQuery not setting input value

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

所以在你的情况下:

$(this).replaceWith($(this).clone(true));

而不是$(this).val("");线。

更新:

为了利用允许您修改input:file元素的浏览器,我将使用如下内容:

$(".checkimgextension").on("change", function () {
    var $this = $(this);

    if (some conditions) {
        alert("wrong:...");
        $this.val("");
        var new_val = $this.val();
        if (new_val !== "") {
            $this.replaceWith($this.clone(true));
        }
    }
});

这样,它首先尝试将值设置为空,如果不成功,请使用该replaceWith方法。

于 2012-12-06T14:13:55.783 回答