作成日:2024-12-24, 更新日:2024-12-24
カナの自動入力
jqueryのライブラリがある
harisenbon / autokana
▼こんな感じ
let selector_kanji = '[name="name_kanji"]'; // 漢字を入力するほうのセレクター let selector_kana = '[name="name_kana"]'; // カナを入力するほうのセレクター $.fn.autoKana(selector_kanji, selector_kana, { katakana : true });
javascriptでバリデーション
送信ボタンを押してサーバー側でバリデーション…ではなく、送信ボタンを押す前にjavascript(jquery)でバリデーションする場合
※やりたいことによってかなり面倒な処理
- 登録時
- 編集時、開いたタイミングでもバリデーションを走らせる
- 漢字とカナのそれぞれが対象
- カナは漢字を入力したとき自動入力されるので、こっちも考慮する
※各ルールを厳しい設定にするなら省略しても良い処理も含む
必要なイベント
- 漢字の入力欄: 入力したとき、フォーカスしたとき、フォーカス解除したとき
- カナの入力欄: 入力したとき、フォーカスしたとき、フォーカス解除したとき、自動入力されたとき
入力したとき、フォーカスしたとき、フォーカス解除したとき
「input, focus, blur」に対して設定
カナの入力欄に)自動入力されたとき
ライブラリのautokanaをカスタマイズすれば対応できそうな気がする
面倒なので…「漢字の入力欄に入力したとき、フォーカス解除したとき」に処理を追加するのが簡単そう
ざっくりしたイメージ
// 初期チェック 漢字のバリデーション; カナのバリデーション; // 対象 let selector_kanji = '[name="name_kanji"]'; // 漢字を入力するほうのセレクター let selector_kana = '[name="name_kana"]'; // カナを入力するほうのセレクター // カナの自動入力の設定 $.fn.autoKana(selector_kanji, selector_kana, { katakana : true }); // 各イベント設定 $(selector_kanji).on('focus', function(){ 漢字のバリデーション; }); $(selector_kanji).on(['input','blur'], function(){ 漢字のバリデーション; カナのバリデーション; }); $(selector_kana).on(['focus','input','blur'], function(){ カナのバリデーション; });