Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.08.2018, 14:28
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

полю input c type="file" присвоить значение по умолчанию
Помогите, нужно в форме обратной связи полю input c type="file" присвоить значение по умолчанию. Если вдруг пользователь картинку не загрузил, то так как поле не обязательное по умолчанию, то чтоб было значение по умолчанию. Вариант value="Значение" не работает. Может подскажите как можно скриптом назначить значение по умолчанию? А то если поле пустое отправляется на сервер, то не срабатывает вся форма. Такие правила в последних версиях сафари
Ответить с цитированием
  #2 (permalink)  
Старый 14.08.2018, 14:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Никак, этому полю произвольный путь указать нельзя, да и что значит "по умолчанию"?
Ответить с цитированием
  #3 (permalink)  
Старый 14.08.2018, 14:49
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,592

Очевидно, что правильное решение - поправить кривую серверную часть.

Но если костылить, то можно сдалать как-то так:
<input type="file" onchange="this.name=hidden_file.name; hidden_file.parentNode.removeChild(hidden_file); this.removeAttribute('onchange');">
<input type="hidden" name="file_field_name" id="hidden_file" value="no file">
Т.е. если файл не выбран - значение для отправки берётся из скрытого поля.
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 14.08.2018, 14:51
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

Помогите написать костыль под этот инпут
<input name="file[]" type="file" id="fileElem2" multiple accept="image/*" onchange="handleFiles2(this.files)">
Ответить с цитированием
  #5 (permalink)  
Старый 14.08.2018, 14:56
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,592

<input type="file" id="fileElem2" multiple accept="image/*" onchange="
  name = fileElemFake.name; //устанавливаем name - для передачи на сервер
  fileElemFake.parentNode.removeChild(fileElemFake);  //удаляем скрытое поле
  handleFiles2(this.files)   //вызываем обработчик файлов
">
<input type="hidden" name="file[]" id="fileElemFake" value="no file">
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 14.08.2018, 14:56
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Julia1991,
какой костыль? Если у вас РНР, то POST данные и файлы берутся из разных массивов. Логику серверного скрипта нужно править, а не костыли писать.
Ответить с цитированием
  #7 (permalink)  
Старый 14.08.2018, 14:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Aetae,
не получится так на сервере.
Ответить с цитированием
  #8 (permalink)  
Старый 14.08.2018, 15:00
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,592

laimas, хм, да, хотя кто знает какая у них там логика на сервере. Зачастую всё сваливают в одну кучу вручную всё равно.)
Ну, в край - можно преписать отправку через ajax и там уж можно что хошь.
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 14.08.2018, 15:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Aetae
кто знает какая у них там логика на сервере. Зачастую всё сваливают в одну кучу вручную всё равно.
Да не важно, логику на сервере то в любом случае бы править пришлось, так зачем же городить несуразицу, если сразу сделать нормально. Тем более, пустой поле, это не есть трагедия, нужно лишь грамотно обработать условия.
Ответить с цитированием
  #10 (permalink)  
Старый 14.08.2018, 15:03
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

Подскажите тогда условие, чтоб если на сайт вошли через сафари 11 версии и больше, поле input type="file" было обязательным для выполнения (required), с остальных отображалось не обязательным
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с выпадающим списком JavaScript ursus102 Общие вопросы Javascript 0 16.01.2016 19:30
Проблема с Safari (значение по умолчанию) alexvb AJAX и COMET 1 16.08.2014 18:57
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 08:42
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
Как добавить значение в input type="file"? PAMAC Общие вопросы Javascript 2 01.04.2010 19:59