2012-04-22 19 views
1

私はフォームを持っているので、ユーザーは1種類のファイルしかアップロードできません。私はクライアント側のバリデーションを使用していますが、ファイルタイプのバリデーションは期待通りに動作していません。ファイルの種類のクライアント側の検証

validates :doc_type, :allow_blank => true, :format => {:with => /\A.*\.(pdf|PDF)\z/, :message => 'must be PDF file.'} 

とも

validates_attachment_content_type :doc_type, :content_type => { :content_type => "application/pdf" } 

しかし、不正なファイルの種類に関するエラーがクライアント側の検証を介して表示されていませんが、通常の検証エラーなど:私は、これらの二つの方法でファイルの種類を検証してみました。

クライアント側の検証で検証エラーを表示する方法はありますか?

答えて

1

バックエンドに送信する前に、クライアント側でjquery validateプラグインを使用することをおすすめします。これにより、フロントエンドのファイルタイプを検証することができます。ここで

http://docs.jquery.com/Plugins/Validation/Methods/accept

はサンプルです、 "フィールド" が必要と ".XLS" または ".CSV" で終わることができます。

$("#myform").validate({ 
    rules: { 
    field: { 
     required: true, 
     accept: "xls|csv" 
    } 
    } 
}); 

jqueryの検証プラグインを使用しての素晴らしいところは、それはまた、電子メールのように、他のciient側の検証は、便利なパスワードを作るということである、など

関連する問題