2013-10-04 54 views
0

我在下拉框中使用選項來隱藏和顯示div。 我是jquery的新手。我希望能夠測試多個值,如果選擇 p1,p2和p3,則會顯示帶有指定源id的div。到目前爲止,它現在適用於p1。我怎樣才能爲多個值寫這個?jquery:如何測試一個下拉列表的多個值

<select name = "genericId" id="myselect" > 
<option value="p1">Section1</option> 
<option value="p2">Section2</option> 
<option value="p3">Section3</option> 
<option value="j2">Section4</option> 
<option value="j3">Section5</option> 
</select> 

<div id="specify-source"> 
    <p class="headerSection">Select Branch</p> 
    <select name="listOfBranches" id="brnlist"> 
     <option value="0">Branch 1</option> 
     <option value="1">Branch 2</option> 
     <option value="2">Branch 3</option> 
    </select> 
</div> 

This works。

$('#myselect').change(function() { 
     ($(this).val() == "p1") ? $('#specify-source').show() : $('#specify-source').hide(); 
    }); 

我會想測試像P1,P2多個值,P3

回答

0

只要條件添加if語句使用OR運算符來||

$('#myselect').change(function() { 
    if($(this).val() == "p1" || $(this).val() == "p2" || $(this).val() == "p3"){ 
    $('#specify-source').show() 
    }else 
    { 
    $('#specify-source').hide(); 
    } 
}); 

爲了使它對於7次比較,我們使用switch語句:

$('#myselect').change(function() { 
    var target = $(this).val(); 
    switch (target) 
    { 
    case "p1": 
    case "p2": 
    case "p3": 
    $('#specify-source').show() 
    break; 
    case "p4": 
    //your p4 code 
    break; 
    default: 
    //default code to execute 
    $('#specify-source').hide(); 
    } 
}); 

當行爲要執行的離子類似於在不使用break;的情況下相互放置條件。

+0

我打算做大約7次比較和第四次比較p4 Jquery似乎在抱怨。也許你可以比較的變量數量有限制。我如何處理7個比較? – user2320476

+0

@ user2320476一個switch語句是要走的路,給我5分鐘我會輸入它。 –

+0

@ user2320476檢查編輯 –

0

從jQuery文檔

<select multiple="multiple">元件的情況下,所述.VAL() 方法返回包含每個選擇的選項

http://api.jquery.com/val/

您可以循環陣列的陣列看看他們是否存在。

相關問題