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>

为什么这不起作用?

问题不在于功能超出范围,我已经使用此代码测试它不是:

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

2 回答 2

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)"

于 2013-05-11T20:17:13.847 回答
1

好的,所以this.val()不是一个有效的函数是你在你的属性中.val()需要的一个 jQuery 元素函数。$(this).val()onchange

<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 开发人员工具或 FireBug 之类的工具来捕获更改选择时引发的异常。这将使您很好地了解在哪里寻找问题。

于 2013-05-11T20:17:39.460 回答