Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.09.2014, 00:50
Новичок на форуме
Отправить личное сообщение для Dimka-Chelios Посмотреть профиль Найти все сообщения от Dimka-Chelios
 
Регистрация: 21.09.2014
Сообщений: 2

Не передает value из input-а в input
Всем Добрый день!
Имеется:
<input type="file" name="uploadfile" onchange="newFilename(this.value);">
<input type="text" id="fileName">
... и функция ...
<script type="text/javascript">
function newFilename(fileName){
var pos = fileName.lastIndexOf("\\");
if(fileName.lastIndexOf("\\") != -1) {document.getElementById("fileName").value=fileNam e.substr(pos+1);}
}
</script>

После выбора файла, его имя "копируется" в инпут id="fileName", при этом я обрезаю путь, чтобы оставить только имя файла.

Работает в Опере и Хроме последних версийи и в IE(версии 11), а в FF не хочет. Подскажите, как заставить лисичку работать, буду очень признателен.
Ответить с цитированием
  #2 (permalink)  
Старый 22.09.2014, 00:30
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Откуда там пути-то взялись? Нет их там. Посмотрите в консоли или хотя бы алертом.
Ответить с цитированием
  #3 (permalink)  
Старый 22.09.2014, 00:32
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

А, да, в Хроме есть дебилизм такой, он какую-то соплю цепляет к имени файла в value. Нашел у себя, вот так смахивайте:

elem.value = files[id].value.split('\\').pop(); // get rid of fakepath


ЗЫ Это вот если взять files из кнопки, там они могут быть, но я даже не проверял, ибо абсолютно бесполезно на них смотреть.

ЗЗЫ
Цитата:
его имя "копируется" в инпут id="fileName",
чтоб нескучно было жЫть

Последний раз редактировалось kostyanet, 22.09.2014 в 00:34.
Ответить с цитированием
  #4 (permalink)  
Старый 22.09.2014, 13:33
Новичок на форуме
Отправить личное сообщение для Dimka-Chelios Посмотреть профиль Найти все сообщения от Dimka-Chelios
 
Регистрация: 21.09.2014
Сообщений: 2

Сообщение от kostyanet Посмотреть сообщение
Нашел у себя, вот так смахивайте:
elem.value = files[id].value.split('\\').pop(); // get rid of fakepath
Т.К. функция принимает в параметр(fileName) value из инпута, сделал вот так:
function newFilename(fileName{
    document.getElementById("fileName").value=fileName.split("\\").pop();
}

ВСЁ ЗАРАБОТАЛО! СПАСИБО КОСТЯН!
Тавтология конечно у меня: параметр 'fileName' и id='fileName'

P.S. А затеял это все я для того чтобы заменить стандартный <input type="file"> на стилизованый (собранный из других элементов).
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записать в один input значения нескольких input -=fluffy=- Элементы интерфейса 2 17.04.2014 17:40
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
Opera не выполняет style.fontSize=... в поле input Маэстро Opera, Safari и др. 6 20.06.2011 12:03
Копирование из одного input в другой input bar-boss Общие вопросы Javascript 7 08.04.2008 19:10
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55