Ну, это не совсем отвечает на ваш вопрос.Я предполагаю, что у вас есть сценарий, когда вы добавляете ввод файла и запускаете выбор файла, и если пользователь нажимает кнопку отмены, вы просто удаляете ввод.
Если это так, то: Почему добавлениеввод пустого файла?
Создать файл на лету, но добавлять его в DOM только после его заполнения. Вот так:
var fileInput = $("<input type='file' name='files' style='display: none' />");
fileInput.bind("change", function() {
if (fileInput.val() !== null) {
// if has value add it to DOM
$("#files").append(fileInput);
}
}).click();
Итак, я создаюна лету, привязать его к событию изменения, а затем немедленно вызвать щелчок.Изменения сработают только тогда, когда пользователь выберет файл и нажмет Ok, иначе ввод не будет добавлен в DOM, поэтому не будет отправлен.
Рабочий пример здесь: https://jsfiddle.net/69g0Lxno/3/