Подсчитать непустое поле ввода []? - PullRequest
9 голосов
/ 20 мая 2011

С помощью jQuery как подсчитать, сколько полей моего поля массива [] не пустые?

Образец поля ввода

<input type="file" name="arquivo[]" id="arquivo">

Я пытался что-то придумать, используя карту и получить, но это не очень хорошо получается:

var total = 0;
var count = $('#arquivo[value!=""]').map(function() { total = total+1; }).get();

Но независимо от того, сколько полей я заполнил, оно всегда заканчивается значением 1, и если у меня нет заполненных полей 0.

Ответы [ 2 ]

18 голосов
/ 20 мая 2011

Вы можете просто найти length объекта jQuery, который возвращает количество подходящих элементов:

$('#arquivo[value!=""]').length

Но вы же знаете, что это будет всегда возвращать 0 или 1? Свойство id является уникальным только для одного элемента, поэтому вы не можете использовать его несколько раз.


Например:

<div id="foo"></div>
<div id="foo"></div>

При запуске:

$('#foo').length;

Возвращает 1, потому что должен существовать только один элемент с id из foo.


Теперь попробуйте это:

<div class="foo"></div>
<div class="foo"></div>

При запуске:

$('.foo').length;

Возвращает 2. Зачем? Потому что class можно многократно использовать.


Что вы пытаетесь сделать? Можете ли вы опубликовать сценарий с несколькими полями ввода?

3 голосов
/ 20 мая 2011

Если вам нравится запрашивать и считать по имени элемента.Вы можете использовать следующий код

$('[name*=arquivo][value!=""]').length
...