获取jquery中的下拉值

时间:2011-01-12 21:58:05

标签: jquery

如何在jQuery中编写一个能够捕获下拉列表值的click事件?我有:

var select = $('select #dealerName');
    $(function {
        select.click(function {
            alert( $('#dealerName').val() );
        });

    });

我只是想要获得价值 - 这就是我提醒它的原因。点击功能会是什么样子?我的下拉列表中的ID是“dealerName”。以上内容并未提醒任何事情。

3 个答案:

答案 0 :(得分:5)

这是因为你没有正确选择它

var select = $('select #dealerName');

应该是

var select = $('select#dealerName');

但是......我假设你想要在选中后获得价值?当你打开下拉列表时,它会立即显示警报。

不使用.click(),而是使用.change()

编辑:就个人而言,我只是将处理程序直接附加在对象上。

$('select#dealerName').change(function() {
    alert($(this).val());
}

答案 1 :(得分:1)

五件事:

  1. 除非您的javascript代码位于文档的底部,否则您需要在$(function(){})中包含 all 您的jQuery; - 就像现在一样,它会在DOM准备好被访问之前尝试找到你的选择。

  2. 如果<select>元素的ID为#dealerName,则您的jQuery选择器将为$('#dealerName') - 因为现在您正在寻找后代到指定了ID的<select>。你也不想做select#dealerName,因为ID是唯一的,并且指定标签只会减慢jQuery的速度。

  3. click会在有人点击选择时立即触发,而不是在选择新选项时触发。您可能需要change

  4. 没有太大的交易,但有一个稍微受欢迎的约定,命名变量引用jQuery包装器,开头有一个$,以便能够快速告诉jQuery包装的是什么。

  5. 在事件调用中,您可以使用this

  6. 快速引用相关元素

    所以一个有效的例子是:

    $(function() {
       $('#dealerName').change(function() {
          alert($(this).val());
       });
    });
    

答案 2 :(得分:0)

我看到了一些可能的错误:

删除第一行选择器中的空格。

select#dealername

这意味着“具有经销商名称id的选择标签”。您的版本是“名为dealername的元素,它是选择标记的”。

此外,在编写内联函数时,请在function关键字后面添加()。