2012-04-22 102 views
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端驗證方便,如電子郵件,密碼等