いくつかのファイルをアップロードするためのファイルフィールドを含むフォームがあります。最初は、参照からアップロードするファイルを1つ選択しましたが、それ以上アップロードしたくないことに気づきました。どうすれば再び空にすることができますか?このフィールドが入力されると、空に戻すことはできませんか?
前もって感謝します
いくつかのファイルをアップロードするためのファイルフィールドを含むフォームがあります。最初は、参照からアップロードするファイルを1つ選択しましたが、それ以上アップロードしたくないことに気づきました。どうすれば再び空にすることができますか?このフィールドが入力されると、空に戻すことはできませんか?
前もって感謝します
これは、javascript で実現できます。
electrictoolbox.com からの jQuery 投稿で Clear upload file 入力フィールドを引用します。
function reset_html(id) { $('#'+id).html($('#'+id).html()); }
$(document).ready(function() {
var file_input_index = 0; $('input[type=file]').each(function() { file_input_index++; $(this).wrap('<div id="file_input_container_'+ file_input_index+'"></div>'); $(this).after('<input type="button" value="Clear" onclick="reset_html(\'file_input_container_'+ file_input_index+'\')" />'); });
});
検証されていないフォームを投稿しようとした場合、フォームを再レンダリングすると、ファイルフィールドは空になります。
詳細については、この問題を参照してください。 フォームエラー時にDjangoフォームファイルフィールドが消える
以下は私のために働きます。HTMLにクリアボタンを追加します
<input type="submit" name = "submit-clear" value="clear file">
次に、ビューでこのボタンを使用して処理します。
if 'submit-clear' in request.POST:
return HttpResponseRedirect('')
これにより、すべてのファイルフィールドがクリアされますが、ユーザーが行った他の設定もすべて削除されます。他の設定を保持してファイルフィールドを削除するだけの場合は、フォームが何らかの方法で検証されないようにして、再度レンダリングされるようにします。