2012-02-12 119 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