我有一个表单,我想让用户只上传一种类型的文件。我使用客户端验证,但文件类型验证没有我预期的行为。我尝试用这两种方式验证文件类型:
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" }
但有关错误文件类型的错误不会通过客户端验证显示,而是通常的验证错误。
是否存在通过客户端验证显示验证错误的方法?
答案 0 :(得分:1)
我建议首先在客户端使用jquery validate插件,然后再提交给你的后端。这允许您验证前端的文件类型。
http://docs.jquery.com/Plugins/Validation/Methods/accept
这是一个示例,需要“字段”并以“.xls”或“.csv”结尾。
$("#myform").validate({
rules: {
field: {
required: true,
accept: "xls|csv"
}
}
});
使用jquery验证插件的好处在于它还可以使其他方便的验证方便,如电子邮件,密码等。