2014-02-12 54 views
0

我有这样的代码:的onclick选择的选项标签strangly tirgger即使没有点击选项

<select id='chapter'> 

    <option onclick="return my_function('1')" value='1'>1</option> 
    <option onclick="return my_function('2')" value='2'>2</option> 
    <option onclick="return my_function('3')" value='3'>1</option> 
</select> 

当选择用户点击触发的选项之一的onclick事件。 我真的不知道该怎么做。 这里是我工作的代码,看看问题(检查选择标签):

http://animup.net/manga/claymore/c127/#1

+0

我想你不能把'在选项标签oncllick'事件。 –

+0

这是有道理的,因为你有3个选项,当用户点击选择,3个选项中的一个将被点击。有很多更好的方法来处理这个问题,我相信jquery的答案很快就会涌入 – Huangism

+0

,只要它能够工作,最好是在选择 – Popo

回答

1

像mayabelle说,使用onchange事件。但是,我不喜欢内联JS。这是不好的做法和丑陋的。使用MVC方法,并使用addEventListener附加的事件和功能分开你的代码,(可预先定义,可以是匿名的)

<select id='chapter'> 
    <option value='1'>1</option> 
    <option value='2'>2</option> 
    <option value='3'>1</option> 
</select> 

var x = document.getElementById("chapter"); 
x.addEventListener("change",function() { 
    var value = my_function(this.options[this.selectedIndex].value); 
),false); 
+0

@Curiosity从JS功能(控制器)分离HTML标记(视图) –

+0

这实际上是MVC的定义。 “MVC(模型 - 视图 - 控制器)是一种架构设计模式,通过分离关注点来鼓励改进应用程序组织。” –

1

我想你想要的是一个onChange事件。

试试这个:

<select id='chapter' onChange="SelectOption(this)"> 
    <option value='1'>1</option> 
    <option value='2'>2</option> 
    <option value='3'>1</option> 
</select> 

function SelectOption(sel) { 
    var selectedValue = sel.value; 
    // Do something with selectedValue here, e.g. call function1 if value 1 is selected 
}