2012-04-22 86 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端验证方便,如电子邮件,密码等