2013-05-11 85 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)"