使用jquery触发更改事件<select>

kis*_*nio 127 jquery

无论如何我可以在页面加载的选择框上触发更改事件并选择一个特定的选项.

此外,通过在将函数绑定到事件后添加触发器来执行该函数.

我试图输出像这样

<select class="check">
<option value="one">one</option>
<option value="two">two</option>
</select>

$(function(){
    $('.check').trigger('change'); //This event will fire the change event. 
    $('.check').change(function(){
      var data= $(this).val();
      alert(data);            
    });
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/v7QWd/1/

Jos*_*eph 251

使用val()更改到(不是文本)和trigger()手动触发事件.

必须在触发器之前声明change事件处理程序.

这是一个样本

$('.check').change(function(){
  var data= $(this).val();
  alert(data);            
});

$('.check')
    .val('two')
    .trigger('change');
Run Code Online (Sandbox Code Playgroud)

  • 这个解决方案的重要部分是:更改事件处理程序必须在触发器之前声明(有意义......),在我的情况下这是问题,谢谢! (5认同)

Thi*_*ter 25

要选择选项,请使用.val('value-of-the-option')select元素.要触发更改元素,请使用.change().trigger('change').

代码中的问题是逗号而不是点,$('.check'),trigger('change');以及在绑定事件处理程序之前调用它的事实.


Moh*_*rbi 12

对于那些被 jQuery 触发器处理程序阻止的人来说,另一个可行的解决方案是,对本机事件的触发如下(100% 工作):

var sortBySelect = document.querySelector("select.your-class"); 
sortBySelect.value = "new value"; 
sortBySelect.dispatchEvent(new Event("change"));
Run Code Online (Sandbox Code Playgroud)


Soh*_*N3N 10

$('#edit_user_details').find('select').trigger('change');
Run Code Online (Sandbox Code Playgroud)

它会更改select html标签下拉项目id="edit_user_details".