OnChange事件未触发,函数不在范围之外

时间:2013-05-11 20:11:04

标签: jquery onchange

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>

为什么这不起作用?

问题不在于范围之外的功能,我使用此代码来测试它不是:

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

2 个答案:

答案 0 :(得分: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)"

答案 1 :(得分:1)

好的,this.val()不是有效函数.val()$(this).val()属性中需要{j}元素函数{/ 1}}。

onchange

或使用<select onchange="language($(this).val())"> <option value="Português">Português</option> <option value="Inglês">Inglês</option> </select> 之类的,

this.value

如果这不能解决问题,您应该使用Chrome开发人员工具或FireBug之类的内容来捕获更改选择时引发的异常。这将使您非常了解在哪里寻找问题。