背景
モーダルに検索フォームが設置されている。
モーダル内部にLaravelのformクラスを利用しようとすると、
検索ボタンを押す→モーダルを開く→バリデーション と時間がかる。
そのため、LaravelのFormクラスは利用せずjqueryで実装しようと考えた。
結論
Laravelのフォームクラスは優秀。
いろんなことを考慮して作られているため、
自分で同じようなことをしようとするとテストも含めて工数がかなりかかる。
実装の概略
入力時にフリーワード→セレクトボックスへ変更。
最小値・最大値が逆に入力されていないか判断するバリデーションのみを実装した。
セレクトボックスは変更後の値が不正な値である場合に、アラートを出すようにした。
実装
入力時の値を保持→変更時の値を保持
.js
$('#form').on('focus',function(){
focusval=this.value;
}).change(function(){
selectedval = this.value;
//focusvalとselectedval を較べる処理を記載
)};
以上。