У меня есть форма на моей странице, которая имеет проверку, чтобы определить, был ли файл включен или нет. Если файл не выбран и форма отправлена, я должен получить предупреждение:
«Вложение не может быть пустым»
Я использую этот плагин ajaxupload ( источник github ), чтобы позволить пользователю щелкнуть изображение и включить всплывающее диалоговое окно файла.
Вот что происходит:
- Пользователь выбирает файл
- Файл ввода копируется и прикрепляется к форме как скрытый ввод
Со всеми браузерами. Когда я проверяю свой элемент формы, я вижу входящий файл:
<form ....>
<input type="file" name="song[attachment]" style="position: absolute; right: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 480px; font-family: sans-serif; cursor: pointer; ">
</form>
FF и Opera работают нормально. Но Safari и Chrome жалуются, что ввод файла пуст. то есть запуск проверки:
«Вложение не может быть пустым»
Но почему Safari и Chrome работают по-разному? Могу ли я не динамически прикреплять элементы ввода в форму перед отправкой с помощью этих двух браузеров? Возможно, Safari и Chrome считают недопустимым синтаксис переписать ввод файла после загрузки элемента формы?
PS. Я еще не проверял это на IE, так как я на Mac.