Считать непустое поле ввода[]?

#jquery #count #field #validation

#jquery #подсчитывать #поле #проверка

Вопрос:

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

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

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

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

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

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

Ответ №1:

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

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

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


Например:

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

Когда вы запускаете:

 $('#foo').length;
  

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


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

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

Когда вы запускаете:

 $('.foo').length;
  

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


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

Комментарии:

1. @Blender ваш и мой учитывают только 1, а не все поля из arquivo[]

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

3. Возможно, вы неправильно используете id атрибут. Можете ли вы опубликовать HTML-код с 10 изображениями?

4. @Блендер arquivo[0], arquivo[1] ... arquivo[9]

5. Ладно. У вас не может быть двух одинаковых элементов id . Никогда. Максимум равен единице, это то, что jQuery возвращает правильно. Попробуйте использовать class вместо id (смотрите мой пример).

Ответ №2:

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

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