2012-01-31 33 views
10

cách tốt nhất để kiểm tra là danh sách thả xuống chứa giá trị không phải là rỗng.làm thế nào để kiểm tra một dropdown có một giá trị trong jquery?

<select class="dropinput" name="Finish1" id="dropFinish1" tabindex="10" disabled="disabled"> 
    <option value=""></option> 
</select> 

Cách kiểm tra trình đơn thả xuống ở trên không chứa giá trị?

+0

Không chứa giá trị (không

+0

không chứa giá trị – Beginner

Trả lời

15
if($('.dropinput > option[value!=""]').length == 0) { 
    //dropdown contains no non-null options 
} 

Điều này sẽ kiểm tra xem hộp chọn có chứa 0 tùy chọn có giá trị khác "" (trống) không.

Vì vậy, HTML sau sẽ được xem như trống ở trên jQuery:

<select class="dropinput" name="Finish1" id="dropFinish1" tabindex="10" disabled="disabled"> 
    <option value=""></option> 
</select> 

HTML sau đây sẽ không được xem như trống:

<select class="dropinput" name="Finish1" id="dropFinish1" tabindex="10" disabled="disabled"> 
    <option value=""></option> 
    <option value="some value"></option> 
</select> 

JSFiddle demo

2

thử này

này sẽ cung cấp cho bạn giá trị duy nhất nếu nó có một giá trị

$("#dropFinish1 option:selected[value!=""]).val() 
+0

công trình này đẹp, althout có một thiếu ", do đó, nó nên đọc' $ ("# dropFinish1 tùy chọn: được chọn [value! =" "]"). Val() ' –

0
$('.dropinput').text(); 

nếu trả về "" nó có nghĩa rằng không có gì là lựa chọn.

var selectedItem = ""; 
$('.dropinput option').each(function(){ 
if($(this).attr('selected') == 'selected'){ 
selectedItem = $(this).val(); 
} 
}): 

nếu biến trống không có nghĩa là không có mục nào được chọn.

2

Đỗ ý của bạn là:

 

var hasOption = true; 
$('.dropinput option').each(function(i, v){  
     var $this = $(this);   
     if($this.val() == '' || $this.size < 1) { 
      hasOption = false; 
     } else { 
      hasOption = true; 
     }   
    }); 
 
Các vấn đề liên quan