Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка input - file (https://javascript.ru/forum/misc/1982-proverka-input-file.html)

Snipe 15.10.2008 14:02

Проверка input - file
 
Подскажите пожалуйста, возможно как-то проверить до отправки на сервер пытаются загрузить верный файл или просто какую-то ерунду в поле набрали?

Ну т.е. на submit либо true вернуть, либо false.

ZoNT 15.10.2008 14:14

джаваскриптом - никак...

Snipe 15.10.2008 14:33

Хорошо, а можно сделать чтоб в IE по нажатии на поле ввода автоматически открывалось окно с выбором файлов? (Как сейчас происходит в FF3)

Kolyaj 15.10.2008 15:00

В IE как раз у элементов есть метод click.

Snipe 15.10.2008 15:11

Цитата:

Сообщение от Kolyaj (Сообщение 7114)
В IE как раз у элементов есть метод click.

И:confused:

Zeroglif 15.10.2008 15:12

Цитата:

Сообщение от Snipe
а можно сделать чтоб в IE по нажатии на поле ввода автоматически открывалось окно с выбором файлов?

Файл-инпуту сделать 'display:none', вместо него рядышком положить эмулирующий текст-инпут плюс кнопка "Обзор...", на 'onclick' текстового и кнопки повесить вызов метода 'click()' файл-инпута, на 'onchange' файл-инпута повесить переброс его 'value' в текстовый... как-то так, если я понял правильно.

Snipe 15.10.2008 15:21

Хм. действительно если запускать click() с другого элемента - то появляется окно для выбора файла.
Спасибо.

А можно еще onmousedown в том же input-file...

Snipe 15.10.2008 16:03

Если кому интересно, в IE в итоге получилось так:
<input type="file" onmouseup="if (ie) {this.click(); this.blur();}">


В других браузерах по-другому.

Kolyaj 15.10.2008 16:08

Цитата:

Сообщение от Snipe
if (ie) {this.click(); this.blur();}

наверное достаточно
this.click && this.click();  this.blur();
при некоторых допущениях.

Snipe 15.10.2008 16:13

Цитата:

Сообщение от Kolyaj (Сообщение 7120)
наверное достаточно
this.click && this.click();  this.blur();
при некоторых допущениях.

В Safari два раза окошко вылазит.


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