2017-05-09 86 views
0

我只想隱藏那些選擇了空值的選擇框。我有以下HTML和jQuery只隱藏那些選擇了空值的選擇框

<div class="form-item"> 
<select name="select" class="date-month"> 
<option value="1">Jan</option> 
<option value="2">Feb</option> 
<option value="3">Mar</option> 
<option value="4">Apr</option> 
<option value="5" selected="selected">May</option> 
<option value="6">Jun</option> 
<option value="7">Jul</option> 
<option value="8">Aug</option> 
</select> 
</div> 
<div class="form-item"> 
<select name="select" class="date-month"> 
<option value="" selected="selected"></option> 
<option value="1">Jan</option> 
<option value="2">Feb</option> 
<option value="3">Mar</option> 
<option value="4">Apr</option> 
<option value="5">May</option> 
<option value="6">Jun</option> 
<option value="7">Jul</option> 
<option value="8">Aug</option> 
</select> 
</div> 

對於我使用下面的代碼

$('.date-month option').each(function() { 
    if (this.selected) 
     $(this).parent().hide(); 
    else 
     $(this).parent().show(); 
}); 

,但它不工作。

回答

1

$(document).ready(function() { 
 
      $('.date-month').each(function() { 
 
       if ($(this).val()=='') 
 
        $(this).hide(); 
 
        
 
      }); 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="form-item"> 
 
<select name="select1" class="date-month"> 
 
<option value="">select</option> 
 
<option value="1">Jan</option> 
 
<option value="2">Feb</option> 
 
<option value="3">Mar</option> 
 
<option value="4">Apr</option> 
 
<option value="5" selected="selected">May</option> 
 
<option value="6">Jun</option> 
 
<option value="7">Jul</option> 
 
<option value="8">Aug</option> 
 
</select> 
 
</div> 
 
<div class="form-item"> 
 
<select name="select2" class="date-month"> 
 
<option value="">select</option> 
 
<option value="1">Jan</option> 
 
<option value="2">Feb</option> 
 
<option value="3">Mar</option> 
 
<option value="4">Apr</option> 
 
<option value="5">May</option> 
 
<option value="6">Jun</option> 
 
<option value="7">Jul</option> 
 
<option value="8">Aug</option> 
 
</select> 
 
</div>

+0

謝謝,但因爲第二個選擇框中選擇一個空值則隱藏所有的選擇框。我想隱藏那些選擇了空值的選擇框。 – John

+0

@John你的意思是,在這種情況下,第二個選擇框應顯示,第一個應該隱藏..對嗎? – Bhaskar

+0

對。我想隱藏所有選擇了空值的選擇框。 – John

0

可以使用atrribute selector發現有一個選擇的價值元素:

$('.date-month option[selected="selected"]').parent().hide(); 

顯示/隱藏選擇:

$('.date-month').each(function() { 
    if ($(this).find('option[selected="selected"]').length>0) { 
     $(this).hide(); 
    } else { 
     $(this).show(); 
    } 
    }); 
+0

謝謝,但它隱藏了所有的選擇框,因爲在第二個選擇框中選擇了空值。我想隱藏那些選擇了空值的選擇框。 – John

0

一號線應該是足夠:

$('.date-month option[selected="selected"]').hide(); 

https://jsfiddle.net/wh27868m/1/

+0

謝謝,但它隱藏了所有的選擇框,因爲在第二個選擇框中選擇了空值。我想隱藏那些選擇了空值的選擇框。 - 約翰剛剛編輯 – John