起きた事象
- 元々、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
はよく使われていそうなプラグインの割に、同じ事象が見当たらなかった - イベントを付与し直してくれると助かるのになぁ