2010-12-02 30 views
6
<select name="history" id="history" > 
<option value="history 1" onClick="alert('h1');">history 1</option> 
<option value="history 2" onClick="alert('h2');">history 2</option> 
<option value="clearhistory" onClick="this.form.submit();" >Clear History</option> 
</select> 

有人可以帮我这个脚本? 我期待,每当用户点击历史1 ..它会提醒H1 脚本在Firefox和IE的作品,但无法在Chrome :(JavaScript的onclick警报不在铬中工作

回答

10

使用平变化,而不是对的onclick选择列表。

<select name="history" id="history" onchange="historyChanged(this);"> 
<option value="history1">history 1</option> 
<option value="history2">history 2</option> 
<option value="clearhistory">Clear History</option> 
</select> 

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 
<script type="text/javascript"> 

function historyChanged() { 
    var historySelectList = $('select#history'); 
    var selectedValue = $('option:selected', historySelectList).val(); 

    alert(selectedValue); 

    if (selectedValue == 'clearHistory') { 
     historySelectList.form.submit(); 
    } 
} 

$(function() { 
    alert('my alert'); 
    $('select#history').change(historyChanged); 
}); 

</script> 
7

使用的onChange上的选择,而不是每个选项。这里是的jsfiddle http://jsfiddle.net/tBjkg/

<select name="history" id="history" onChange="alert(this.value);"> 
<option value="history1">history 1</option> 
<option value="history2">history 2</option> 
<option value="clearhistory">Clear History</option> 
</select> 

警报(THIS.VALUE)指的是内选择该选项的值,它是目前塞莱反恐执行局。

12

如果你想使用onClick在Chrome,IE等选项元素,则必须使用短的解决办法:设置onChange选择元素的属性"this.options[this.selectedIndex].onclick()"

+2

优秀的解决方法..! – user525146 2012-07-11 15:53:24

0

在某些浏览器,

选择相同的选项第二次,

没有onchange事件抛出。

这有助于:

<select onchange="alert/*orwhateveryoudowith:*/(this.value);/*but set:*/this.selectedIndex=0"> 
<option disabled selected>Choose your Plan</option> 
<option value=1>Plan 1</option> 
<option value=2>Plan 2</option> 
<option value=3>Plan 3</option> 
</select>