jQuery获取select onChange的值

Rob*_*ght 745 jquery select

我的印象是,我可以通过执行此操作$(this).val();并将onchange参数应用于选择字段来获取选择输入的值.

它似乎只有在我引用ID时才有效.

我该怎么做呢.

the*_*dox 1415

试试这个-

$('select').on('change', function() {
  alert( this.value );
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select>
    <option value="1">One</option>
    <option value="2">Two</option>
</select>
Run Code Online (Sandbox Code Playgroud)

你也可以参考onchange事件 -

function getval(sel)
{
    alert(sel.value);
}
Run Code Online (Sandbox Code Playgroud)
<select onchange="getval(this);">
    <option value="1">One</option>
    <option value="2">Two</option>
</select>
Run Code Online (Sandbox Code Playgroud)

  • 我知道这已经很晚但是如果您使用键盘(Tab键)导航表单并使用向上/向下箭头从下拉列表中进行选择,则FireFox(22.0)不会触发更改事件.您还需要为FireFox绑定keypress.附加信息:jQuery 1.10.2使用语法$('select').on('change',function(){/*do seomthing*/}); (15认同)
  • @MonkeyZeus不需要,它将在组件失去焦点时触发。从(jQuery更改方法)[https://api.jquery.com/change/] _“对于选择框,复选框和单选按钮,当用户使用鼠标进行选择时会立即触发该事件,但对于其他元素类型将事件推迟到该元素失去焦点为止。” _当然,您可以改用`.change()`快捷方式。 (2认同)

Dar*_*rov 95

我的印象是我可以通过执行$(this).val();来获取选择输入的值.

如果您不引人注意地订阅(这是推荐的方法),这是有效的:

$('#id_of_field').change(function() {
    // $(this).val() will work here
});
Run Code Online (Sandbox Code Playgroud)

如果您使用onselect和混合标记与脚本,您需要传递对当前元素的引用:

onselect="foo(this);"
Run Code Online (Sandbox Code Playgroud)

然后:

function foo(element) {
    // $(element).val() will give you what you are looking for
}
Run Code Online (Sandbox Code Playgroud)


ilg*_*gam 89

这对我有帮助.

对于选择:

$('select_tags').on('change', function() {
    alert( $(this).find(":selected").val() );
});
Run Code Online (Sandbox Code Playgroud)

对于收音机/复选框:

$('radio_tags').on('change', function() {
    alert( $(this).find(":checked").val() );
});
Run Code Online (Sandbox Code Playgroud)

  • 有一些问题直接使用'this.value',它有时不会使用更新的值.这解决了我的问题. (4认同)
  • 这对我帮助最大.不知道,onChange事件没有返回完整的选定元素. (3认同)

Hai*_*yen 26

$('#select-id').change(function() {
    console.log($(this).val());
});
Run Code Online (Sandbox Code Playgroud)

  • 如果有人还需要获取选项的文本,这里是 $(this).find('option:selected').text(); (5认同)

Kri*_*hna 14

尝试使用事件委派方法,几乎​​适用于所有情况.

$(document.body).on('change',"#selectID",function (e) {
   //doStuff
   var optVal= $("#selectID option:selected").val();
});
Run Code Online (Sandbox Code Playgroud)


Abr*_*hin 10

你可以尝试这个(使用jQuery) -

$('select').on('change', function()
{
    alert( this.value );
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<select>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
    <option value="4">Option 4</option>
</select>
Run Code Online (Sandbox Code Playgroud)

或者您可以使用像这样的简单Javascript-

function getNewVal(item)
{
    alert(item.value);
}
Run Code Online (Sandbox Code Playgroud)
<select onchange="getNewVal(this);">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
    <option value="4">Option 4</option>
</select>
Run Code Online (Sandbox Code Playgroud)


Ank*_*ise 7

$('#select_id').on('change', function()
{
    alert(this.value); //or alert($(this).val());
});



<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<select id="select_id">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
    <option value="4">Option 4</option>
</select>
Run Code Online (Sandbox Code Playgroud)


Sha*_*med 7

箭头函数的作用域与函数不同, this.value将为箭头函数给出undefined。修复使用

$('select').on('change',(event) => {
     alert( event.target.value );
 });
Run Code Online (Sandbox Code Playgroud)


Dev*_*per 7

jQuery 使用更改事件获取选择 html 元素的值

对于演示和更多示例

$(document).ready(function () {   
    $('body').on('change','#select_box', function() {
         $('#show_only').val(this.value);
    });
}); 
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>  
<html>  
<title>jQuery Select OnChnage Method</title>
<head> 
 <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>    
</head>  
<body>  
<select id="select_box">
 <option value="">Select One</option>
    <option value="One">One</option>
    <option value="Two">Two</option>
    <option value="Three">Three</option>
    <option value="Four">Four</option>
    <option value="Five">Five</option>
</select>
<br><br>  
<input type="text" id="show_only" disabled="">
</body>  
</html>  
Run Code Online (Sandbox Code Playgroud)


drj*_*nco 6

这对我有用.在没有运气的情况下尝试其他一切:

<html>

  <head>
    <title>Example: Change event on a select</title>

    <script type="text/javascript">

      function changeEventHandler(event) {
        alert('You like ' + event.target.value + ' ice cream.');
      }

    </script>

  </head>

  <body>
    <label>Choose an ice cream flavor: </label>
    <select size="1" onchange="changeEventHandler(event);">
      <option>chocolate</option>
      <option>strawberry</option>
      <option>vanilla</option>
    </select>
  </body>

</html>
Run Code Online (Sandbox Code Playgroud)

取自Mozilla


小智 6

对于所有选择,调用此函数。

$('select').on('change', function()
{
    alert( this.value );
});
Run Code Online (Sandbox Code Playgroud)

仅选择一项:

$('#select_id') 
Run Code Online (Sandbox Code Playgroud)


小智 6

我有一个例子可以帮助提出新想法。我希望这对任何人都有帮助。

$('#editpricelist_box').change(function ($e){
    $('input[name="edit_unit_price"]').val(parseFloat(this.val()).toFixed(2));
    console.log(this.val());
});
Run Code Online (Sandbox Code Playgroud)


小智 5

寻找jQuery 网站

HTML:

<form>
  <input class="target" type="text" value="Field 1">
  <select class="target">
    <option value="option1" selected="selected">Option 1</option>
    <option value="option2">Option 2</option>
  </select>
</form>
<div id="other">
  Trigger the handler
</div>
Run Code Online (Sandbox Code Playgroud)

JAVASCRIPT:

$( ".target" ).change(function() {
  alert( "Handler for .change() called." );
});
Run Code Online (Sandbox Code Playgroud)

jQuery的示例:

要将有效性测试添加到所有文本输入元素:

$( "input[type='text']" ).change(function() {
  // Check input( $( this ).val() ) for validity here
});
Run Code Online (Sandbox Code Playgroud)