261

我在我的选择元素的更改事件上绑定了一个事件:

$('select').on('change', '', function (e) {

});

如何访问发生更改事件时选择的元素?

4

10 回答 10

521
$('select').on('change', function (e) {
    var optionSelected = $("option:selected", this);
    var valueSelected = this.value;
    ....
});
于 2012-10-05T16:24:34.047 回答
87

您可以使用jQuery 查找方法

 $('select').change(function () {
     var optionSelected = $(this).find("option:selected");
     var valueSelected  = optionSelected.val();
     var textSelected   = optionSelected.text();
 });

上述解决方案完美运行,但我选择为愿意获得点击选项的他们添加以下代码。即使此选择值未更改,它也允许您获取所选选项。(仅使用 Mozilla 测试)

    $('select').find('option').click(function () {
     var optionSelected = $(this);
     var valueSelected  = optionSelected.val();
     var textSelected   = optionSelected.text();
   });
于 2013-11-17T12:43:12.163 回答
19

委托替代

如果有人为他们的侦听器使用委托方法e.target,请使用(它将引用 select 元素)。

$('#myform').on('change', 'select', function (e) {
    var val = $(e.target).val();
    var text = $(e.target).find("option:selected").text(); //only time the find is required
    var name = $(e.target).attr('name');
}

JSFiddle 演示

于 2015-05-08T19:27:20.460 回答
10
<select id="selectId">
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
</select>


$('#selectId').on('change', function () {
     var selectVal = $("#selectId option:selected").val();
});

首先创建一个select option. 之后使用jquery您可以在用户更改值时获取当前选择的select option值。

于 2016-04-29T10:21:25.017 回答
7

我觉得这个更短更干净。此外,如果有多个,您可以遍历选定的项目;

$('select').on('change', function () {
     var selectedValue = this.selectedOptions[0].value;
     var selectedText  = this.selectedOptions[0].text;
});
于 2015-06-05T21:45:06.547 回答
4
$('#_SelectID').change(function () {
        var SelectedText = $('option:selected',this).text();
        var SelectedValue = $('option:selected',this).val();
});
于 2018-10-17T17:22:10.023 回答
2

另一种获取选定值的值的简短方法,

$('#selectElement').on('change',function(){
   var selectedVal = $(this).val();
                       ^^^^  ^^^^ -> presents #selectElement selected value 
                         |
                         v
               presents #selectElement, 
});
于 2017-09-05T14:33:54.273 回答
1

这也可以正常工作

(function(jQuery) {
  $(document).ready(function() {
    $("#select_menu").change(function() {
      var selectedOption = $("#select_menu").val()
    });
  });
})(jQuery);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>

于 2021-06-25T18:32:52.263 回答
0

参见官方 API 文档 https://api.jquery.com/selected-selector/

这个好作品:

$( "select" ).on('change',function() {
  var str = "";
  // For multiple choice
  $( "select option:selected" ).each(function() {
    str += $( this ).val() + " "; 
  });
});

$( "select" ).on('change',function() {
  // For unique choice
  var selVal = $( "select option:selected" ).val(); 
});

并容易做出独特的选择

var SelVal = $( "#idSelect option:selected" ).val();
于 2019-03-26T16:12:26.730 回答
0

您可以使用此 jquery 选择更改事件来获取选定的选项值

演示

$(document).ready(function () {   
    $('body').on('change','#select', function() {
         $('#show_selected').val(this.value);
    });
}); 
<!DOCTYPE html>  
<html>  
<title>Learn Jquery value Method</title>
<head> 
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> 
</head>  
<body>  
<select id="select">
 <option value="">Select One</option>
    <option value="PHP">PHP</option>
    <option value="jAVA">JAVA</option>
    <option value="Jquery">jQuery</option>
    <option value="Python">Python</option>
    <option value="Mysql">Mysql</option>
</select>
<br><br>  
<input type="text" id="show_selected">
</body>  
</html>  

于 2019-04-22T17:05:08.623 回答