代码之家  ›  专栏  ›  技术社区  ›  Chris Spittles

是否在SelectedIndex更改后触发OnChange事件?

  •  1
  • Chris Spittles  · 技术社区  · 15 年前

    当用jquery设置selectedIndex或val时,是否可以在select字段上触发更改事件?

    我试过了,好像不管用。我正试图用我自己的设计替换一个select字段。问题是,如果我将一个更改事件附加到一个选择字段,当索引更改时,它需要触发该事件。

    有办法吗?

    var a = $("a");
    
    $("a").on("click", function() {
      
      $("#selectList")[0].selectedIndex = a.index($(this));
      
        //now fire event
    
    	return false;
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <a href="#">Trigger 1</a>
    <a href="#">Trigger 2</a>
    <a href="#">Trigger 3</a>
    
    <select id="selectList">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
    </select>

    编辑: @Xsaint32通过使用 jQuery's trigger 方法。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Chris Spittles    10 年前

    @Xsaint32通过使用 jQuery's trigger 方法。

    var a = $("a"),
        select = $("#selectList");
    
    $("a").on("click", function() {
      
      select[0].selectedIndex = a.index($(this));
      
      select.trigger( "change" );
    
      return false;
    });
    
    select.on("change", function() {
      
      alert("My index changed");
    
      return false;
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <a href="#">Trigger 1</a>
    <a href="#">Trigger 2</a>
    <a href="#">Trigger 3</a>
    
    <select id="selectList">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
    </select>