Подтвердить что ты не робот

Как вызвать событие изменения для выбранного (jQuery)

Перед тем, как нажать кнопку reset, я выбираю "Компания" в Избранном (выпадающий список). Событие происходит нормально после нажатия кнопки reset. Я снова выбираю "Компания", но событие change в выпадающем списке не происходит.

Может ли кто-нибудь сказать мне, как вызвать событие изменения для раскрывающегося списка после нажатия кнопки reset, а затем одного и того же элемента?

Код, который у меня есть до сих пор:

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

Код для кнопки reset:

$("#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('');
  });

});

4b9b3361

Ответ 1

Вот что я понял:

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

liszt:updated больше не работает в новой версии выбранного вместо этого ниже, как ответ Александру Кожана, предлагающий

 trigger("chosen:updated");

Ответ 2

для новой версии выбранного события выбрано: обновлено

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

Ответ 3

Если мне нужно только обновить значение в выбранном select - .trigger('chosen:updated'), достаточно. Но если у меня есть обработчик изменений и вы хотите его вызвать - мне нужно сделать .trigger('chosen:updated').change()

Ответ 4

Я не знаю, является ли это вашим делом или нет, но ваш код выше должен работать,

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

но обратите внимание, что событие "изменить" происходит в большинстве браузеров, когда вы нефокусируете выберите вход

Итак, когда вы нажимаете reset, перед выполнением действия reset запускается onchange.

Теперь попробуйте щелкнуть вне входа select после изменения выбора и посмотреть, все ли работает или нет.

Ответ 5

Возможно, вам стоит попробовать использовать .on, так как ваш $('# mainMenu') может быть где-то изменен (не могу сказать без примера). Попробуйте сделать это:

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

или любой родительский селектор вместо "тяжелого" тела

Ответ 6

Если я не ошибаюсь, чтобы понять вас, вы можете активировать изменение события после нажатия кнопки reset.        вы можете сделать это, просто добавив одну строку к вашему коду        // код

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

      });