はじめに
jQueryValidationを使ってはまったところをメモ。
textareaの入力チェック結果がサーバーサイドと異なる(改行コードの数え方)
jQueryValidationでは改行を1文字(LF)、サーバーサイドでは2文字(CRLF)で数えていましたので、jQueryValidationでも改行を2文字として数えるように手を加えました。
↓のスライドを参考にさせていただきました。
改行コードについては14ページから。
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
数字項目にスペースを入れてもエラーにならない!
numberやrangeを適用している項目にスペース(半角・全角ともに)を入れてもエラーになりません。
オリジナルのValidationメソッドを追加して対応する必要があります。
// 半角スペースと全角スペース不可
jQuery.validator.addMethod("noSpace", function(value, element){
return !(/\s/.test(value))
});
【参考】
jquery form validate not allow space for username field? - Stack Overflow
エラー(valid)だったときに任意の処理をしたい
コールバック関数が用意されていますが、チェックのタイミングによって使えるものが異なります。
- invalidHandler:サブミットした時にエラーがあったら呼ばれる。フォームの全ての項目のエラー内容が取得可能。
- highlight:リアルタイムにチェックして項目一個一個がエラーになった時に呼ばれる。現在入力中のエラー内容が取得可能。
jQueryValidationを初めて使った時お世話になったサイト
最初に読ませていただきました。チュートリアルっぽくなっていてわかりやすいです。
jQuery Validate Pluginの解説とValidate 日本語環境用PluginとjQuery Form Pluginとの連携 - くらげだらけ
APIドキュメントを日本語訳されています。
高機能ライブラリ「jQuery」とそのPlugin「Validation」 - すぎゃーんメモ