Edited at

jquery.validationを入れるとイベントが消えてしまう件

More than 3 years have passed since last update.


起きた事象


  • 元々、Webフォームがあり、selectボックスの changeイベント発火時に、一部のフォームを書き換えるというAjax処理を書いていた

  • 今回の改修で、jquery.stepを使い、Webフォームをウィザード形式に変更することになった


  • jquery.stepjquery.validationと相性が良いみたいなので入れてみた

  • ウィザード形式になりvalidationも動作するが、元々あったAjax処理が動かなくなった


結論


  • changeイベントの付与を、旧live形式にしたら動くようになりました


    • before



   $('#some_select_id').on('change', function() {

hogehoge;
});


  • after

   $(document).on('change', '#some_select_id' function() {

hogehoge;
});


  • おそらくvalidationをした際に、HTMLを書き直したりしているので、一度付与したイベントが削除された後、要素だけ復活してる感じになってるんでしょうね


考えていたこと



  • jquery.validationはよく使われていそうなプラグインの割に、同じ事象が見当たらなかった

  • イベントを付与し直してくれると助かるのになぁ