使用$(this)获取下拉值

时间:2014-05-06 15:40:04

标签: jquery

我正试图从下拉框中获取价值,但它不起作用。

function izaberiJezik()
{
    alert($(this).val());

}

<select onchange="izaberiJezik()" style="max-width:150px">
    <option value="-">Language</option>
    <option value="en">English</option>
    <option value="hr">Hrvatski</option>
</select>

我想使用$(this),因为我在页面上有2个相同的选择框。

3 个答案:

答案 0 :(得分:5)

我会使用适当的事件处理程序:

<select id="language" style="max-width:150px">
    <option value="-">Language</option>
    <option value="en">English</option>
    <option value="hr">Hrvatski</option>
</select>

$('#language').on('change', function() {
    alert($(this).val());
});

答案 1 :(得分:2)

首先,将所有更改事件内联绑定并不是一个好主意。利用jQuery的功能并在文档中绑定。

HTML

<select id="myselect" style="max-width:150px">
    <option value="-">Language</option>
    <option value="en">English</option>
    <option value="hr">Hrvatski</option>
</select>

<select id="mysecondSelect" style="max-width:150px">
    <option value="-">Language</option>
    <option value="en">English</option>
    <option value="hr">Hrvatski</option>
</select>

脚本

$(document).ready(function () {
   $("#myselect, #mysecondSelect").on("change", function(evt) {
      alert($(this).val());
   });
})

以下是演示http://jsfiddle.net/Q4Sp8/1/

答案 2 :(得分:0)

您需要将this传递到onchange函数才能获得对目标select的引用:

<select onchange="izaberiJezik(this)" style="max-width:150px">

然后你可以使用:

function izaberiJezik(el)
{
    alert(el.value);
}

<强> Fiddle Demo

对于jQuery方法,您可以使用 .change() 事件处理程序:

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

<强> Fiddle Demo