如何触发更改事件的选择(jQuery)

How to trigger change event for Chosen (jQuery)

本文关键字:选择 jQuery 事件 何触发      更新时间:2023-09-26

在我点击重置按钮之前,我在已选(下拉列表)中选择了"Company"。单击"重置"后,事件恢复正常。我再次选择"Company",但下拉列表中的事件change没有出现。

谁能告诉我如何触发更改事件的下拉列表后单击重置按钮,然后相同的元素?

目前为止的代码:

$("#mainMenu").change(function(e){
    e.preventDefault();
    loadFirstManu(true);
});

复位按钮代码:

$("#btn_reset").click(function() {
  CKEDITOR.instances.ckeditor.setData('');
  $('.mchosen').each(function() {
     $(this).val('').trigger('liszt:updated');
     $('#submenu').attr('disabled', 'disabled').html('');
     $('#secondsubmenu').attr('disabled', 'disabled').html('');
     $('#s-menu').removeClass('required').html('');
     $('#secondsubmenu').removeClass('validate[required]');
     $('#tabmenu').attr('disabled', 'disabled').html('');
     $('#tab').removeClass('required').html('');
  });

});

我是这么想的:

$('#my-select').val(5).trigger("liszt:updated")

liszt:updated不再在选择的新版本中工作,而是使用下面作为Alexandru Cojan的回答建议

 trigger("chosen:updated");

对于新版本的selected事件为" selected:updated"

$(selector).trigger("chosen:updated")

如果我只需要在选择中刷新值- .trigger('chosen:updated')就足够了。但是,如果我有改变处理程序,并希望它被调用-我需要做.trigger('chosen:updated').change()

我不知道这是否是你的情况,但你的代码应该工作,

$("#mainMenu").change(function(e){
        e.preventDefault();
        loadFirstManu(true);
    });

但是请注意,当取消选择输入

时,大多数浏览器都会发生"change"事件

所以当你点击reset时,就在执行重置动作之前,onchange被触发。

现在尝试在改变选择后点击选择输入的外部,看看它是否仍然有效

也许你应该尝试使用。on,因为你的$('#mainMenu')可能已经改变了某处(不能说没有一个例子)。试试这样做:

$("body").on('change','#mainMenu',function(){ 
  ...
});

或任何父选择器,而不是"heavy" body

如果我没有错的理解你,那么你想触发事件改变后点击重置按钮。只需在代码中添加一行即可//代码

     $("#btn_reset").click(function(){
       // your code here
       $("#mainMenu").trigger('change'); 
       //you can write this as per your requirements ie. at start or end.
      });