客户端验证文件类型

时间:2012-04-22 22:34:01

标签: ruby-on-rails-3 file client-side-validation

我有一个表单,我想让用户只上传一种类型的文件。我使用客户端验证,但文件类型验证没有我预期的行为。我尝试用这两种方式验证文件类型:

  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 个答案:

答案 0 :(得分:1)

我建议首先在客户端使用jquery validate插件,然后再提交给你的后端。这允许您验证前端的文件类型。

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

这是一个示例,需要“字段”并以“.xls”或“.csv”结尾。

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

使用jquery验证插件的好处在于它还可以使其他方便的验证方便,如电子邮件,密码等。