Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Не передает value из input-а в input (https://javascript.ru/forum/css-html-firefox-mizilla/50309-ne-peredaet-value-iz-input-v-input.html)

Dimka-Chelios 21.09.2014 00:50

Не передает 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 не хочет. Подскажите, как заставить лисичку работать, буду очень признателен.

kostyanet 22.09.2014 00:30

Откуда там пути-то взялись? Нет их там. Посмотрите в консоли или хотя бы алертом.

kostyanet 22.09.2014 00:32

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

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


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

ЗЗЫ
Цитата:

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

Dimka-Chelios 22.09.2014 13:33

Цитата:

Сообщение от kostyanet (Сообщение 331659)
Нашел у себя, вот так смахивайте:
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':D

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


Часовой пояс GMT +3, время: 22:00.