起きた事象
- 元々、Webフォームがあり、selectボックスの
change
イベント発火時に、一部のフォームを書き換えるというAjax処理を書いていた - 今回の改修で、
jquery.step
を使い、Webフォームをウィザード形式に変更することになった -
jquery.step
はjquery.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
はよく使われていそうなプラグインの割に、同じ事象が見当たらなかった - イベントを付与し直してくれると助かるのになぁ