修正するページに関してタブによってその趣旨に沿ったtextareaが計4つあり投稿出来るようになっています。
このtextareaはjspで部品化しており同ページからincludeで呼び出しています。
また、このtextareaはバリデーションにて○○文字以上入力する制限になっています。
そしてこのバリデーションはtextareaのフォーカスが外れた時(input.blur)○○文字以上入力していないとtextareaの下にエラーメッセージが出るよう動いています。
要件はtextareaの入力データをバリデーションが掛かる前に「jQuery.trim()」し前後の空白文字を取る事です。
jsファイルにて画面ロード時にsetupなるメソッドがありその中でフォーカスが外れる度バリデーションが掛かるよう設定している箇所がある事分かりました。
function setup(input, ○, ×) {
~~~~~~~~~~~~~
~~~~~~~~~~~~~
input.blur(validate);
~~~~~~~~~~~~~
~~~~~~~~~~~~~
~~~~~~~~~~~~~
~~~~~~~~~~~~~
}
修正として上記「input.blur(validate);」の一つ上に同じくblurを使いtrimメソッドを作成しました。
function textTrim(){
params = $('textarea').val();
params = jQuery.trim(params);
$('textarea').val(params);
}
function setup(input, ○, ×) {
~~~~~~~~~~~~~
~~~~~~~~~~~~~
input.blur(textTrim);
input.blur(validate);
~~~~~~~~~~~~~
~~~~~~~~~~~~~
~~~~~~~~~~~~~
~~~~~~~~~~~~~
}
上記の修正でhtmlコード上一番上のtextareaは正常に動作しますが、
その他下のtextareaは「$('textarea').val(params);」をやっているので入力文字が入ってしまいます。
部品化しているのでclassの修正等も出来ず何か良い方法はありますでしょうか?
また、訳あってこのコード修正を綺麗に書かなければとんでもない仕打ちが待っている為どうかお助け下さい。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/05 05:54 編集
2016/02/06 05:56