2012-05-09 48 views
0

只需在value=""(引號內沒有任何內容)的情況下單擊選擇字段中的選項時,我需要能夠隱藏出現的圖像。如果選項中的值=「some_url」,那麼我希望顯示圖像。如何在使用onClick時基於IF語句隱藏元素

我已經使用下面的代碼來顯示圖像時,單擊一個選項。但是,使用onClick時,即使選項value =「」,也會顯示圖像。

這裏是JavaScript我使用:

function showImage() { 
    document.getElementById('openimg').style.display = 'block'; 

下面是HTML:

<select name="" > 
    <option value="url" onclick="showImage();">Some_option_1</option> 
    <option value="">Some_option_2</option> 
    <option value="">Some_option_3</option> 
</select> 

<a href='url_2'><img src='images/some_img.jpg' id='openimg' style='display:none'></a> 

我只插入一個的onClick命令一個選項裏面,只是爲了顯示它的工作原理。看起來我需要在每個選項中使用if語句來「顯示if」或「隱藏if」以及onClick命令。

回答

1

這是我會怎麼做:

<script type="text/javascript"> 
function showImage() 
{ 
    var choice = document.getElementById('myDropDown').value; 
    if(choice.length > 0) 
    { 
     document.getElementById('openimg').style.display = 'block'; 
    } 
    else 
    { 
     document.getElementById('openimg').style.display = 'none'; 
    } 
} 
</script> 

<select id="myDropDown" onchange="showImage()"> 
<option value="url">Some_option_1</option> 
<option value="">Some_option_2</option> 
<option value="">Some_option_3</option> 
</select> 
<a href='url_2'><img src='images/some_img.jpg' id='openimg' style='display:none'></a> 
+0

對於不同的事件,我已經在'元素只能有一個onchange事件。如果你已經有一個onChange事件處理程序,那麼你可以在你的onChange事件處理程序中調用上面的showImage函數。希望有道理 – dave823

+0

這可能會解決一個onChange事件中的兩個函數,但我已經有另一個ID,我必須在select元素中,這意味着我不能在您的建議代碼中使用第二個ID。 – user1322707

0

嗯,你問如何使用,如果還是如何確定選擇什麼呢?

首先,在下拉菜單中使用onchange事件。

這是用於說明目的的LONGHAND方式。

function onChange(){ 

    var mySelect = document.getElementById("my-select"); 
    var selectedValue = ""; 

    for(var i = 0; i < mySelect.length;i++){ 
     if(mySelect[i].selected) 
     selectedValue = mySelect[i].value;   
    } 

    if(selectedValue == "whatever") 
    { 
      //do something 
    } 

    if(selectedValue == "ugh") 
      // do something else 


} 
+0

感謝您的幫助。如果我在''元素中有一個ID。我可以在onChange事件中添加第二個函數,但我無法添加其他ID。有什麼建議麼? – user1322707