Javascript.RU

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

Кнопка очистить поле file
Ребята, помогите пожалуйста.
Столкнулся с такой проблемой, нужно было написать скрипт для отдельной очистки поля с типом файл.
Собственно вот он:

function ClearFile(idForm)
{
   var form = document.getElementById(idForm);
   var values = new Array(form.elements.length);
   for (var i = 0; i < form.elements.length; i++) 
   {
      values[i] = form.elements.item(i).value;
   }
    form.reset();  
   for (var i = 0; i < form.elements.length; i++)
   {
      if(form.elements.item(i).type != 'file') 
	        {
         form.elements.item(i).value = values[i];
      }
   }
}

<br /><input type="button" value="<?=$lang[300]?>" onclick="ClearFile('fMain');" />

Принцип работы таков, сначала мы запоминаем все поля, потом чистим всю форму и обратно восстанавливаем все поля кроме полей с типом file.
Все работает, очищаются все поля c типом file, но чекбоксы, если были отмечены, слетают. Перерыл кучу литературы, не знаю что делать =(
Ответить с цитированием
  #2 (permalink)  
Старый 14.09.2011, 15:41
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

а еще радио и селеты будут слетать
Очистить INPUT TYPE=file
Попробуйте это решение, но оно не заточено под select с multiple. Если нет обработчиков на input type file, то самое просто решение просто удалять его и вставлять новый.
Ответить с цитированием
  #3 (permalink)  
Старый 14.09.2011, 18:07
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

у type=text, textarea, type=password, type=hidden, type=select значение хранится в свойстве value строкового типа.

у чекбоксов и радиобоксов значение считывается из свойства checked, которой должно быть булевого типа (true\false).

поэтому и слетают
Ответить с цитированием
  #4 (permalink)  
Старый 15.09.2011, 10:46
Интересующийся
Отправить личное сообщение для Nitro_Generate Посмотреть профиль Найти все сообщения от Nitro_Generate
 
Регистрация: 14.04.2011
Сообщений: 20

Хмм... тогда как решить ? Может создать второй массив, в который записывать все checked, если этот checked выделен.
Записываем:
- сначала пробегаемся по первому с value.
- потом по второму с checked аналогично записывая
стираем все.
Восстанавливаем сначала все value где тип не файл
затем восстанавливаем все checked.
Что-то мне подсказывает что это плохая идея.
Ответить с цитированием
  #5 (permalink)  
Старый 16.09.2011, 09:14
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

nikita.mmf, предложил отличный способ - удалять и создавать заново type="file" и не е-ся с многочисленными полями

в JQUERY это даже можно сделать, не убирая обработчиков onchange (функция detach)
Ответить с цитированием
  #6 (permalink)  
Старый 23.09.2011, 11:59
Интересующийся
Отправить личное сообщение для Nitro_Generate Посмотреть профиль Найти все сообщения от Nitro_Generate
 
Регистрация: 14.04.2011
Сообщений: 20

Спасибо melky,
Просто хочется что бы на всех браузерах скрипт хорошо отрабатывал, но что-то я все больше склоняюсь к тому, что нужно тупо адаптировать под одни из последних версий популярных браузеров. =(
Ответить с цитированием
  #7 (permalink)  
Старый 23.09.2011, 12:16
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Nitro_Generate Посмотреть сообщение
Просто хочется что бы на всех браузерах скрипт хорошо отрабатывал, но что-то я все больше склоняюсь к тому, что нужно тупо адаптировать под одни из последних версий популярных браузеров. =(
удалить элемент и поставить новый (или заменить) можно в любом пк браузере
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить координаты курсора в текстовом поле в пикселях prike Events/DOM/Window 4 23.05.2013 04:35
Очистить INPUT TYPE=file Nitro_Generate Общие вопросы Javascript 17 27.08.2011 14:50
Cвоя кнопка для input file vah-smile (X)HTML/CSS 1 26.04.2011 02:24
Переопределить функции .childElements rikitikitavi Events/DOM/Window 2 18.03.2011 21:44
загрузка джаваскрипта file by file с номером ревизии(последней) в урле для файла sergdev Ваши сайты и скрипты 7 13.04.2010 10:52