我在MVC应用程序中使用下拉列表有两个值。我在html中获得了值和文本(来自firebug)。但我面临一个奇怪的问题。 我得到下拉选定值未定义,并在下拉更改事件中选择文本为空字符串。
我的代码就像:
$('#mydropdownid').on("change",function(){
var selectedValue=$('#mydropdownid option:selected').val();
var selectedText=$('#mydropdownid option:selected').text();
});
我也试过了 $( '#mydropdownid')找到( '选项:选择了')文本();
。但结果是一样的。问题应该是什么?
答案 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.