5

重複の可能性:
jQuery を使用して <input type='file' /> をクリアする

これは私のコードです:

 <input ID="fileUpload1" runat="server" type="file" style="width:275px; position:absolute; left:1px"/>

私はいくつかの解決策を試しました:

$("input[type='file']").val('');
$('#DivfileUpload').replaceWith("<input class=VWButton ID=fileUpload1 runat=server type=file style=width:275px; position:absolute; left:1px/>");

および他の多くのウェブからのものですが、成功しませんでした。

4

3 に答える 3

9

(明らかな) セキュリティ上の理由から、ファイル入力の値を設定することはできません。

クリアしたい場合は、フォームをリセットする必要があります。


新しいものに置き換えることもできますが、有効なコードで置き換えてください。(つまり、ASP 属性/値などのサーバー側コードを含めようとせrunat=serverず、平易な言葉ではない属性値 (スタイル属性など) を引用しないでください)。

于 2012-08-08T14:31:18.940 に答える
7

.val('') で値を設定しようとすると、セキュリティ上の理由から一部のブラウザー (IE など) で失敗します。

最善の方法は、フォームをリセットすることです:

$('form').trigger('reset');

または、わずかな変更を加えて (HTML が有効であることを確認して) 置換コードを使用するには:

$('#fileUpload1').replaceWith('<input id="fileUpload1" type="file" style="width:275px; position:absolute; left:1px"/>');

ボックスを CSS でスタイルすると、コードはさらにシンプルになります。

CSS:

#fileUpload1 {
    width: 275px;
    position: absolute;
    left: 1px;
}

JavaScript:

$('#fileUpload1').replaceWith('<input id="fileUpload1" type="file"/>');

より高度なオプションは、ページがロードされたときにファイル アップロード ボックスを非表示にしてから、ユーザーに表示されるその複製を作成することです。クリアする必要がある場合は、クローンを削除してから、元の非表示のクローンを再作成します。この方法では、ユーザーが複数のファイルをアップロードできるようにする場合に、入力ボックスの複数のコピーを作成することもできます。実装の詳細はお任せします。;)

于 2012-08-08T15:08:23.807 に答える
-1
$(function() { 
  $('#fileUpload1').val(''); 
});
于 2012-08-08T14:38:08.073 に答える