获取使用AJAX加载的select值

时间:2015-01-07 21:45:27

标签: javascript jquery ajax

我通过AJAX加载一个select,然后尝试将select的值用于另一个AJAX调用。

所以我有:

<select id ="thisSelect">
  <option value = "someValue1"> Some Value 1 </option>
  <option value = "someValue2"> Some Value 2 </option>
</select>

这很好。然后我试图像这样访问thisSelect的值:

$(document).ready(function(){
    var value = $('#thisSelect').val(); 
    alert(value); 
});

它只注册在原始AJAX调用中加载的select的第一个值,并且不捕获任何更改。

有什么想法吗?我试过了:

 $('#thisSelect').on('change', function() {
    var value = (this.value);
    //or
    alert(this.value);  
});

在同一个$(文件).ready块中,但是&#39;值&#39;显示为未定义,我没有得到警告框。

2 个答案:

答案 0 :(得分:2)

听起来你的内容是在on change语句运行后加载的。

使用委托事件处理程序代替:

 $(document).on('change', '#thisSelect', function() {
    var value = $(this).val();
    alert(value);  
});

这可以通过监听事件来冒泡到一个不变的祖先元素(如果没有更接近的话,文档是默认的)。然后它在事件时应用jQuery选择器,因此该项只需匹配。

答案 1 :(得分:0)

你可以尝试

var array = [];
var i = 0;
$("#thisSelect").children().each(function () { array [i++] = $(this).val; });

它会将值抛出到您可以访问的数组中。