如何使用jQuery捕获<select>的更改事件?</select>

时间:2009-09-10 04:05:46

标签: jquery event-handling

<select id="target">
<option value="1">item1</option>
<option value="2">item2</option>
<option value="3">item3</option>
</select>

说,我想根据选定的值进行一些处理。

6 个答案:

答案 0 :(得分:12)

$('#target').change( function() {
   $(this).find(":selected").each(function () {
            console.log( $(this).val() );
    });
 });

答案 1 :(得分:5)

$("#target").change( function() {
    alert($("#target option:selected").val());
});

如果此人不更改选项,您可能还需要考虑这一点,只需点击下拉列表并选择相同的项目:

$("#target option").click( function() {
     alert($("#target option:selected").val());
});

答案 2 :(得分:2)

$("#target").change( function() {
  var selectedOption = $("#target option:selected");
  var selectedValue = selectedOption.val();  // gets the selected value
  var selectedText = selectedOption.text();  // gets the selected text
});

答案 3 :(得分:1)

接受的答案没问题但是没有抓住按键(箭头键或字母键)所做的更改。

这是一个更好的计划:

$('#target').bind("change keyup",function() {
   $(this).find(":selected").each(function () {
     // do something amazing here
   });
});

答案 4 :(得分:0)

您可以通过以下方式获取所选值和文字:

$("#target").change(function() {
  var selectedValue = $(this).val(),
      selectedText = $('option:selected', this).text();
  // ...
});

答案 5 :(得分:0)

使用arrow-function,它可以是:

$('#target').change((e) =>{
        console.log(e.currentTarget.value);
        console.log(e.currentTarget.textContent);
 });

this替换event.currentTarget