2012-02-12 34 views
10

我有附加了一些選項的簡單的HTML select標籤:執行從HTML javascript函數選擇

<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 2012-02-12 20:13:53

+0

有你去我的朋友 http://stackoverflow.com/questions/2000656/using-href-links-inside-option-tag – Alexander 2012-02-12 20:17:49

+0

謝謝亞歷克斯,我沒有看到之前,我發佈。 – kjarsenal 2012-02-12 20:27:37

回答

14

你會好起來的<select>分配onChange="schedule(this.value);。部分原因是因爲它的實際工作,部分是爲了避免冗餘代碼,如果相同的選項被選中了兩次,一方面是因爲更少的事件處理程序總是更好。

+0

@kjarsenal:如果你支持IE的老版本,只要確保每個'option'元素都有自己的'value'屬性。當你不給它一個值屬性舊的IE就不會自動替換'option'的文本內容。 – 2012-02-12 20:27:31

+0

指出。這些值將由框架動態生成。謝謝。 – kjarsenal 2012-02-12 20:29:12

7

select

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

然後在你的處理器使用的onchange事件...

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

DEMO:平變化http://jsfiddle.net/hYY6X/

0

改用

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

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

也許,除了答案不存在,當我加載頁面......如果有任何事情重新強調事實這是一個合適的解決方案。主持人隨時刪除或任何。我在這裏沒有這麼久,但我確實得到了這樣的印象:我不喜歡社區的態度 - 幾乎不鼓勵 – dannix 2012-02-12 20:31:11