在jquery中的下拉更改事件中未定义下拉选定值

时间:2015-08-27 17:31:19

标签: jquery html

我在MVC应用程序中使用下拉列表有两个值。我在html中获得了值和文本(来自firebug)。但我面临一个奇怪的问题。 我得到下拉选定值未定义,并在下拉更改事件中选择文本为空字符串。

我的代码就像:

$('#mydropdownid').on("change",function(){

    var selectedValue=$('#mydropdownid option:selected').val();
    var selectedText=$('#mydropdownid option:selected').text();

});

我也试过了 $( '#mydropdownid')找到( '选项:选择了')文本();

但结果是一样的。问题应该是什么?

2 个答案:

答案 0 :(得分:3)

您可以使用$(this)并获取.val().text(),如下所示:

$('#mydropdownid').on("change", function() {
  var value = $(this).val();
  var text = $(this).find('option:selected').text();
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="mydropdownid">
  <option value="1">1</option>
  <option value="2">2</option>
</select>

使用$(this),您可以更改ID,而无需遍历所有代码并在任何地方更新ID。

答案 1 :(得分:1)

直接在下拉列表中使用.val()

$('#mydropdownid').on("change",function(){

    var selectedValue=$('#mydropdownid').val();
    var selectedText=$('#mydropdownid option:selected').text();

});

.text()应该就像你拥有它一样。 See here.