2012-02-12 16 views
10

を選択し、HTMLからJavaScript関数を実行します。私が言うことを選択肢に私はと同じようにいくつかの単純なイベントハンドラをアタッチしたいは私が添付いくつかのオプションを持つ単純なHTMLのselectタグ持って

<select> 
<option>school a</option> 
<option>school b</option> 
<option>school c</option> 
</select> 

を.. 。リンク:

<option onclick="scheduleA();">school a</option> 

が、私はこのような状況でのイベント処理に対処するために、別のjavascript機能を構築する必要があるのですか、このタスクを達成するでしょういくつかの簡単なHTMLがありますか?

+0

'onchange'を見てください。あなたはパラメータ付きの関数を書く。 – Smamatti

+0

ありがとう私の友人 http://stackoverflow.com/questions/2000656/using-href-links-inside-option-tag – Alexander

+0

アレックスに感謝、私は投稿する前にこれを見ていない。 – kjarsenal

答えて

14

<select>onChange="schedule(this.value);を割り当てる方がよいでしょう。同じオプションが2回選択された場合、部分的には重複コードを避けるために部分的に機能します。

+0

@kjarsenal:IEの古いバージョンをサポートしているならば、それぞれの 'option'要素に独自の' value'属性を与えてください。古いIEは、あなたが値属性を与えていないときに自動的に 'option'のテキスト内容を置き換えません。 –

+0

が記載されています。これらの値はフレームワークによって動的に生成されます。ありがとうございました。 – kjarsenal

7

select

<select onchange="scheduleA.call(this, event)"> 

その後、あなたのハンドラで...

function scheduleA(event) { 
    alert(this.options[this.selectedIndex].text); 
} 

DEMOにonchangeイベントを使用します。http://jsfiddle.net/hYY6X/

0

使用のonchange代わり

<select onchange="schedule(this.value)"> 
<option>school a</option> 
<option>school b</option> 
</select> 

function schedule(selectedValue){ 
    ... do something with selectedValue 
} 
+1

おそらく、答えがページをロードしたときにそこになかったことを除いて...もし何かがそれが適切な解決策であるという事実を再び強制するならば。司会者は自由に削除することができます。私はずっとここにいませんでしたが、私は本当にコミュニティから嫌いな態度が少しありました – dannix

関連する問題