Динамически прикреплять ввод данных в форму - не работает в Safari / Chrome - PullRequest
0 голосов
/ 07 января 2011

У меня есть форма на моей странице, которая имеет проверку, чтобы определить, был ли файл включен или нет. Если файл не выбран и форма отправлена, я должен получить предупреждение:

«Вложение не может быть пустым»

Я использую этот плагин ajaxupload ( источник github ), чтобы позволить пользователю щелкнуть изображение и включить всплывающее диалоговое окно файла.

Вот что происходит:

  1. Пользователь выбирает файл
  2. Файл ввода копируется и прикрепляется к форме как скрытый ввод

Со всеми браузерами. Когда я проверяю свой элемент формы, я вижу входящий файл:

<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.

1 Ответ

0 голосов
/ 10 января 2011

Очевидно, что это проблема безопасности с Safari / Chrome. Я переместил элемент вместо того, чтобы клонировать его. Кажется, сейчас работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...