首页 文章

jQuery获取select onChange的值

提问于
浏览
613

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

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

我该怎么做呢 .

12 回答

  • 0

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

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

    $('#id_of_field').change(function() {
        // $(this).val() will work here
    });
    

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

    onselect="foo(this);"
    

    然后:

    function foo(element) {
        // $(element).val() will give you what you are looking for
    }
    
  • 12

    这对我有帮助 .

    对于选择:

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

    对于收音机/复选框:

    $('radio_tags').on('change', function() {
        alert( $(this).find(":checked").val() );
    });
    
  • 3

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

    $('select').on('change', function()
    {
        alert( this.value );
    });
    

    仅限一个选择:

    $('#select_id')
    
  • 76

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

    $(document.body).on('change',"#selectID",function (e) {
       //doStuff
       var optVal= $("#selectID option:selected").val();
    });
    
  • 4

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

    $('select').on('change', function()
    {
        alert( this.value );
    });
    
    <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>
    

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

    function getNewVal(item)
    {
        alert(item.value);
    }
    
    <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>
    
  • 69

    寻找jQuery site

    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>
    

    JAVASCRIPT:

    $( ".target" ).change(function() {
      alert( "Handler for .change() called." );
    });
    

    jQuery的例子:

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

    $( "input[type='text']" ).change(function() {
      // Check input( $( this ).val() ) for validity here
    });
    
  • 1211

    请注意,如果这些不起作用,可能是因为DOM尚未加载且您的元素尚未找到 .

    要修复,请将脚本放在正文末尾或准备好文档

    $.ready(function() {
        $("select").on('change', function(ret) {  
             console.log(ret.target.value)
        }
    })
    
  • 2

    试试这个-

    $('select').on('change', function() {
      alert( this.value );
    });
    
    <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>
    

    你也可以参考onchange事件 -

    function getval(sel)
    {
        alert(sel.value);
    }
    
    <select onchange="getval(this);">
        <option value="1">One</option>
        <option value="2">Two</option>
    </select>
    
  • 0

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

    <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>
    

    取自Mozilla

  • 2
    $('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>
    
  • 7

    箭头函数的范围与函数不同, this.value 将为箭头函数提供undefined . 修复使用

    $('select').on('change',(event) => {
         alert( event.target.value );
     });
    
  • 1
    jQuery(document).ready(function(){
    
        jQuery("#id").change(function() {
          var value = jQuery(this).children(":selected").attr("value");
         alert(value);
    
        });
    })
    

相关问题