2011-05-20 7 views
9

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

Пример поля ввода

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

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

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

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

ответ

17

Вы можете просто найти 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 можно многократно использовать.


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

+0

@Blender твое и мое рассчитывать только 1, а не все поля из 'Arquivo []' – Prix

+0

Смотрите мой выбор. Это правильное поведение. – Blender

+0

Мы получаем несколько изображений до 10 и требуем первых 3. – Prix

3

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

$('[name*=arquivo][value!=""]').length 
Смежные вопросы