目次
この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
LiveValidation.jsを使用するとブラウザ上でバリデーションを行えます。
■ 動作環境
Ruby 1.8.7,1.9.3
Rails 2.3.15
prototype.jsがある
■ 1.「LiveValidation.js」をダウンロード
■ 2.ダウンロードしたものをRailsのpublicディレクトリに配置(prototype.jsと同じ階層)
■ 3.Viewで使ってみる
JSを読み込み、テキストフィールド等のIDに対するscriptを書くだけ
~~~~~~~~~~~
~~~~~~~~~~~
<%= javascript_include_tag "livevalidation_prototype" %>
~~~~~~~~~~~
~~~~~~~~~~~
<%= :text_field, :product, :name, :id => '/product_name'/ %>
この下に↓を追加
<script type="text/javascript">
var product_name = new LiveValidation('product_name', { validMessage: 'OKです', wait: 500 });
product_name.add(Validate.Presence, {failureMessage: "未入力です"});
//product_name.add(Validate.Length, { minimum: 3, maximum: 255,
tooLowMessage: '3文字以上で', tooHighMessage: '255文字以下で' });
//product_name.add(Validate.Numericality, { minimum: 3, maximum: 255,
tooLowMessage: '数字は3から', tooHighMessage: '数字は255まで' });
//product_name.add(Validate.Format, {pattern: /^会社名$/i,
failureMessage: "'会社名'と入力してください" } );
</script>
Rails3系だとProduct.validatorsでバリデーションの設定がとれるのでペルパーとかを作成してもっとスマートにできそうです。