HTML5: как посчитать длину файлов из поля множественного ввода - PullRequest
3 голосов
/ 21 августа 2011

Как я могу использовать jquery для подсчета длины файлов из поля множественного ввода?

alert($('#myForm input[type=file]').files.length);
<input type="file" multiple="multiple" name="file[]"/>

ошибка:

$ ("# myForm input [type= file] "). files undefined

Работает поиск с обычным js, но я не хочу использовать ID в поле ввода.

alert(document.getElementById('file').files.length);

<input type="file" multiple="multiple" name="file[]" id="file"/>

Ответы [ 3 ]

14 голосов
/ 21 августа 2011

Попробуйте получить собственный DOM-элемент, используя метод .get:

$('#myForm input[type=file]').get(0).files.length

Обратите внимание, что если у вас есть несколько элементов DOM, соответствующих вашему селектору, он вернет первый, а если у вас его нет, он, очевидно, выдаст исключение.

3 голосов
/ 11 июня 2012

Ни один из этих ответов не работает с новым тэгом html 5.Так что если у вас есть что-то вроде

<input type="file" name="filesToUpload[]" id="filesToUpload" multiple="multiple" size="20" />

, обратите внимание на множественный тег, JQ не сможет получить каждый из этих файлов, получит только один из них, я в значительной степени попробовал все возможные селекторы сейчас, нобезрезультатно.

Однако, как уже упоминалось ранее, стандартный Javascript работает:

 alert(document.getElementById('filesToUpload').files.length);
0 голосов
/ 21 августа 2011

вы можете попробовать alert($('#myForm input[type=file]').length); или же alert($('#myForm input[type=file]').size());

или alert($('#file').size()); или alert($('#file').length);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...