Нельзя изменить значение типа ввода файла, так как это может привести к уязвимости безопасности.Вместо этого просто замените входной файл новым.Вместо $('#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 () , поэтому событие все равно будет работать на новом входе сразу после его замены.