2011-05-31 25 views
0

次のコードはFirefoxでは完全に機能しますが、IEやChromeでは機能しません。OnClick DropdownはFireFoxでは動作しますが、ChromeやIEでは動作しませんか?

<script type="text/javascript"> 
function display_div(show){ 
    document.getElementById('passenger1').style.display = "none"; 
    document.getElementById('passenger2').style.display = "none"; 
    document.getElementById('passenger3').style.display = "none"; 
    document.getElementById(show).style.display = "block"; 
} 
</script> 

<select name="#" id="#"> 
     <option selected="selected"> </option> 
     <option onClick="display_div('passenger1');">1</option> 
     <option onClick="display_div('passenger2');">2</option> 
     <option onClick="display_div('passenger3');">3</option> 
</select> 

<div id="passenger1" style="display:none;"> hey, 1 works </div> 
<div id="passenger2" style="display:none;"> hey, 2 works </div> 
<div id="passenger3" style="display:none;"> hey, 3 works </div> 

答えて

1

のオプションから移動 "のonClickは、" オプションのonclickのonChange function

http://jsfiddle.net/WmEAp/

+0

ありがとうございました!それは素晴らしいウェブサイトです – Mike

+0

残念ながら、これはあなたが同じオプションを選択した場合、JavaScriptコールが2回目にならないことを意味します。誰でもこのための良い回避策を知っていますか? – DShook

1

select要素

<select onchange="this(this.selectedIndex)"> 
    <option value="passenger1">1</option> 
0

が有効なクリックハンドラではありません移動します。代わりにonchangeを使用してください。

0

IEとChromeは、選択のオプション要素のイベントを認識しません。オプションからonclickイベントを削除し、選択した要素に次のonchangeイベントを追加して、現在のコードで動作させることができます。

onchange="display_div('passenger' + this.value);" 
関連する問題