【问题标题】:.change not working as expected.change 没有按预期工作
【发布时间】:2014-03-20 12:10:04
【问题描述】:

我正在尝试学习如何在 jquery 中使用更改功能,但我似乎无法触发功能。由于我在这方面不是最好的,我想我会尝试其他人的代码,但这也不起作用。我从这个问题的第一个答案中复制了代码

jquery not getting value from select statement on change

HTML

<select id="drop1">
<option value="0">All</option>
<option value="1">Alphabetical</option>
<option value="2">Brewery</option>
<option value="3">Style</option>
</select>

jQuery

 $(function () {
 $('#drop1').change(function () {
     var choice = $(this).val();
     alert(choice);
 }
 });

http://jsfiddle.net/jCLJ9/

但我仍然无法让它工作。这是我用于 Jquery 的链接 ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js

【问题讨论】:

  • 你不见了)this

标签: jquery onchange


【解决方案1】:

你有错别字

$(function () {
    $('#drop1').change(function () {
        var choice = $(this).val();
        alert(choice);
    });
});

更改您的代码

$(function () {
 $('#drop1').change(function () {
     var choice = $(this).val();
     alert(choice);
 } //remover this extra } 
 });
// add extra }); for closing DOM Ready function 

你可以使用this.value代替$(this).val();

【讨论】:

    【解决方案2】:

    应该是这样的

     $('#drop1').change(function(e) {
        var choice = $(this).val();
        alert(choice);
    });
    

    您忘记正确地附上 .change() 事件。

    这是你的工作小提琴http://jsfiddle.net/jogesh_pi/jCLJ9/2/

    【讨论】:

      【解决方案3】:

      您没有关闭对change 的函数调用,因此您可能会在 JavaScript 控制台中遇到语法错误。注意你的版本:

      $('#drop1').change(function () {
        var choice = $(this).val();
        alert(choice);
      }
      

      结束} 结束匿名function,但change() 调用的括号仍然打开。您需要关闭它们:

      $('#drop1').change(function () {
        var choice = $(this).val();
        alert(choice);
      });
      

      【讨论】:

        【解决方案4】:

        缺少右括号导致错误:

         $(function(){
            $('#drop1').change(function() {
                var choice = $(this).val();
                alert(choice);
            });
          });
        

        See demo

        【讨论】:

          【解决方案5】:

          试试下面的东西,伙计你错过了右括号

          $(function () {
              $('#drop1').change(function () {
                  var choice = $(this).val();
                  alert(choice);
              });
          });
          

          【讨论】: