22

リセットボタンをクリックする前に、選択した(ドロップダウンリスト)で「会社」を選択します。リセットをクリックすると、イベントは正常に発生します。もう一度「会社」を選択しましたが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('');
  });

});

4

6 に答える 6

27

これは私が理解したものです:

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

liszt:updated選択したの新しいバージョンでは機能しなくなりました。代わりに、AlexandruCojanの回答が示唆するように以下を使用してください。

 trigger("chosen:updated");
于 2013-05-21T21:30:05.297 に答える
10

選択されたイベントの新しいバージョンの場合、イベントは「chosen:updated」です。

$(selector).trigger("chosen:updated")
于 2014-09-19T13:06:48.590 に答える
8

選択したselectの値を更新する必要がある場合は、-.trigger('chosen:updated')で十分です。しかし、変更ハンドラーがあり、それを呼び出したい場合は、次のことを行う必要があります.trigger('chosen:updated').change()

于 2016-07-02T14:30:33.453 に答える
0

これがあなたのケースであるかどうかはわかりませんが、上記のコードは機能するはずです、

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

ただし、選択した入力のフォーカスを外すと、ほとんどのブラウザで「変更」イベントが発生することに注意してください

したがって、[リセット]をクリックすると、リセットアクションを実行する直前にonchangeがトリガーされます。

選択を変更した後、選択入力の外側をクリックしてみて、それでも機能するかどうかを確認してください

于 2013-02-27T01:42:06.940 に答える
0

$('#mainMenu')がどこかで変更されている可能性があるため、.onを使用してみてください(例なしでは言えません)。これを試してみてください:

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

または「重い」ボディの代わりに任意の親セレクター

于 2013-02-27T01:42:48.967 に答える
0

私があなたを理解するのが間違っていないなら、あなたはリセットボタンをクリックした後にイベント変更をトリガーしたいと思うでしょう。これを行うには、コードに1行追加するだけです//コード

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

      });
于 2013-02-27T01:54:07.137 に答える