簡體   English   中英

顯示基於選擇選項值jQuery的隱藏div

[英]show hide div based on select option value jQuery

我有一個值為0、1、2、3、4、5、6、7的選擇列表。選擇值為0和1時,我想顯示一個div,但是選擇值為2、3、4、5時, 6,7我想隱藏該div。我現在的代碼如下

HTML

<select class="rel_status">
  <option value="0">---</option>
  <option value="1">Single</option>
  <option value="2">In a relationship</option>
  <option value="3">Engaged</option>
  <option value="4">Married</option>
  <option value="5">Separated</option>
  <option value="6">Divorced</option>
  <option value="7">Widowed</option>
</select>

<div class="rel_part">                   
  <input type="text" name="part_name" placeholder="Search">
</div>

jQuery的

//hide partner search form
$('.rel_part').hide(); 

//Search Relationship partner
$(document).ready(function(){
  $('.rel_status').change(function(){
    if($('.rel_status').val() == '2','3','4','5','6','7') {
        $('.rel_part').show(); 
    } else {
        $('.rel_part').hide(); 
    } 
  });
});

當我把代碼實際工作

.val() == '2')

代替

.val() == '2','3','4','5','6','7')

但是我不能顯示其他值的div

if ($.inArray($(this).val(), "2,3,4,5,6,7") == -1) {

演示

 //hide partner search form $('.rel_part').hide(); //Search Relationship partner $(document).ready(function() { $('.rel_status').change(function() { if ($.inArray($(this).val(), "2,3,4,5,6,7") == -1) { $('.rel_part').show(); } else { $('.rel_part').hide(); } }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select class="rel_status"> <option value="0">---</option> <option value="1">Single</option> <option value="2">In a relationship</option> <option value="3">Engaged</option> <option value="4">Married</option> <option value="5">Separated</option> <option value="6">Divorced</option> <option value="7">Widowed</option> </select> <div class="rel_part"> <input type="text" name="part_name" placeholder="Search"> </div> 

使用它會起作用

$('.rel_status').change(function(){
  if($('.rel_status').val() < 2) {
    $('.rel_part').show(); 
  } else {
    $('.rel_part').hide(); 
  } 
});

 //hide partner search form $('.rel_part').hide(); //Search Relationship partner $(document).ready(function(){ $('.rel_status').change(function(){ if($('.rel_status').val() < 2) { $('.rel_part').show(); } else { $('.rel_part').hide(); } }); }); 
 <script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <select class="rel_status"> <option value="0">---</option> <option value="1">Single</option> <option value="2">In a relationship</option> <option value="3">Engaged</option> <option value="4">Married</option> <option value="5">Separated</option> <option value="6">Divorced</option> <option value="7">Widowed</option> </select> <div class="rel_part"> <input type="text" name="part_name" placeholder="Search"> </div> 

這不是將一個值與許多其他值進行比較的有效方法。

if($('.rel_status').val() == '2','3','4','5','6','7')

改用邏輯OR運算符:

if($('.rel_status').val() == '0' || $('.rel_status').val() = '1') {
    $('.rel_part').hide(); 
} else {
    $('.rel_part').show(); 
}

注意,我在if子句中切換了大小寫,因此編寫代碼更少。

問題是,這是不使用的一種有效方式,在Javascript,因為你將最終驗證if($('.rel_status').val() == '7') {代替。

您可以將代碼更改為if($.inArray($('.rel_status').val(), ['2','3','4','5','6','7']) != -1) {並且它應該起作用。

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM