2013-05-11 63 views
0
function language(value) 
{ 
    window.alert(value); 
} 

<select onchange="language(this.val())"> 
    <option value="Português">Português</option> 
    <option value="Inglês">Inglês</option> 
</select> 

爲什麼這不起作用?OnChange事件未觸發,功能未超出範圍

問題不超出範圍的功能,我已經使用這個代碼來測試,這不是:

$(document).ready(function(){ 
    language("testing"); 
}); 

回答

1

好了,所以this.val()是不是有效的函數.val()是你在你的onchange屬性需要$(this).val()一個jQuery元素的功能。

<select onchange="language($(this).val())"> 
    <option value="Português">Português</option> 
    <option value="Inglês">Inglês</option> 
</select> 

或使用this.value像這樣,

<select onchange="language(this.value)"> 
    <option value="Português">Português</option> 
    <option value="Inglês">Inglês</option> 
</select> 

如果不解決這個問題,你應該使用類似Chrome開發人員工具或螢火趕上拋出的異常,當你改變選擇。這會給你一個很好的想法,在哪裏尋找問題。

1

你爲什麼不只是堅持,只是jQuery和做到這一點:

$(document).ready(function() { 
    $('select').change(function() { 
     alert(this.value); 
    }); 
}); 

而如果你只想使用JavaScript,這樣做:

<select onchange="language(this.value)"> <!-- Not this.val() --> 
    <option value="Português">Português</option> 
    <option value="Inglês">Inglês</option> 
</select> 

爲了測試,你可以改變onchange事件onchange="alert(this.value)"