4

重複の可能性:
IE9jQueryが入力値を設定していません

次を使用していくつかの条件に一致する場合は、入力フィールドをリセットしたいと思います$(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が入力値を設定していません

$("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 に答える