半角英数字しか入力できないテキストボックス
今の時代にこんなものを作らないといけなくなるなんて思いもしなかった。
昔、IE*1でしか動かない業務システムで、jQueryを使ってはいけない縛りで、更にStruts1.xを魔改造したオリジナルフレームワークという、今にして思えばゾッとするようなものを保守開発していたんだけれど、その時にフロント側で入力値を制限するということをやっていた。まぁシステムによっては結構そういうのあると思うんだけど、Railsで開発してるんだしバリデーション書いて更新処理さえできなければ良いじゃんって僕は思うんです。バリデーションエラーでちゃんとエラーメッセージも出せるんだしさ。
まぁそうは言ってもシステム開発。要望や要件によっては必要なさそうなものまで実装しないといけないときがあるわけです。なので例によって書いた。ざっくりだけど。
check: (obj) -> val = $(obj).val() unless val.match(/^[0-9a-zA-Z]+$/) val = val.split('') .filter (x) -> x.match(/[0-9a-zA-Z]/) .join('') $(obj).val(val)
これをonkeyupイベントあたりで呼び出すようにしておけば、まぁ間違いないかなーとか。今回は若干知識としてあったから「これをこう実装すればいい」というパターン的なものを具象化するだけで済んだ。まあ、昔はこれをgetElementByIdとかで実装していたんだけどね!!( ゚∀゚)・∵. グハッ!!
*1:しかも、6!!