jQuery .val()在onChange事件上是未定义的

时间:2012-07-27 15:45:31

标签: jquery jquery-selectors

function ddlList_Changed() {
    var ddlList = jQuery('select[name*="ddlList"]');
    var value = jQuery(ddlList).val();
    alert(value);
}

以上显示每当下拉列表的选择发生变化时显示“未定义”的警报。

我已经阅读了其他方案,其中.val()未定义,并建议在文档准备就绪/已完全加载后需要将.val()调用 - 但是肯定这已经过了那个阶段,因为它只是因为选择改变而被解雇了?

注意:ddlList不为null,它最初选择它没有任何问题。 .val()似乎是个问题。

3 个答案:

答案 0 :(得分:2)

请提供代码示例(相关的HTML,JavaScript事件代码等),以便我们可以看到错误的位置。因为选择更改事件或val()函数不是错误的。

另外,你可能不应该一遍又一遍地重写jQuery对象中的ddlList。

另请注意,在元素上调用事件处理程序时,该元素已分配给this变量 - 无需再次使用jQuery选择器查找它。

工作示例:http://jsfiddle.net/RCLjy/5/

答案 1 :(得分:1)

http://jsfiddle.net/39hwp/

您只需要:

$('select[name*="ddlList"]').change(function () {
    alert($(this).val());     
});

答案 2 :(得分:1)

$('select').change(function(){
     var ddlList = $('select option:selected').val();
     alert(ddlList);                   
});