Вы не можете изменить значение типа ввода файла, так как это приведет к уязвимости безопасности. Вместо этого просто замените ввод файла на новый. Вместо $('#file').val('')
, сделайте следующее:
$('#file').replaceWith('<input name="file" type="file" id="file"/>');
Еще лучше было бы клонировать копию оригинальной версии и сохранить его в памяти. Когда вам нужно его заменить, просто используйте клонированную копию и снова клонируйте ее. Так, что-то вроде этого:
$(document).ready(function() {
var empty_input = $('#file').clone();
$('#the-form').on('change', '#file', function(el) {
$('#the-form').submit(); // assuming the target is a hidden iframe
$(this).replaceWith(empty_input.clone());
});
})
Обратите внимание, что я использую делегированную версию jQuery.on() поэтому событие все равно будет работать на новом входе сразу же после его заменить.
Это дубликат для этого: [Очистка с помощью jQuery] (http://stackoverflow.com/questions/1043957/clearing-input-type-file-using-jquery) – jabclab
@ jabclab так ват ?? это вопрос. У dsnt есть принятый ответ ... и этот квест дал мне решение. –