2011-05-20 26 views
9

Với jQuery, làm cách nào để đếm số trường của trường mảng [] của tôi không trống?Đếm trường nhập không trống []?

mẫu của trường nhập

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

Tôi đã cố gắng để làm một cái gì đó bằng cách sử dụng bản đồ và nhận nhưng nó không phải là đến cùng tốt:

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

Nhưng dù có bao nhiêu lĩnh vực tôi có điền nó luôn luôn kết thúc với giá trị của 1 và nếu tôi không có trường điền 0.

Trả lời

17

Bạn chỉ có thể tìm thấy length đối tượng jQuery, trả về số các yếu tố phù hợp:

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

Nhưng bạn không biết rằng điều này sẽ luôn trở 0 hoặc 1? Thuộc tính idđộc đáo chỉ với một phần tử, do đó bạn không thể sử dụng lại nhiều lần.


Ví dụ:

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

Khi bạn chạy:

$('#foo').length; 

Nó trả 1, bởi vì chỉ có một yếu tố nên tồn tại với id của foo.


Bây giờ thử điều này:

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

Khi bạn chạy:

$('.foo').length; 

Nó trả 2. Tại sao? Bởi vì class có thể được tái sử dụng nhiều lần.


Bạn đang cố gắng làm gì? Bạn có thể đăng một kịch bản với nhiều trường nhập liệu không?

+0

@Bàn của bạn và của tôi chỉ đếm 1 và không phải tất cả các trường từ 'arquivo [] ' – Prix

+0

Xem chỉnh sửa của tôi. Đó là hành vi đúng. – Blender

+0

Chúng tôi nhận được nhiều hình ảnh tối đa 10 và 3 hình ảnh đầu tiên. – Prix

3

Nếu bạn muốn truy vấn và đếm theo tên phần tử. Bạn có thể sử dụng mã bên dưới

$('[name*=arquivo][value!=""]').length 
Các vấn đề liên quan