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" }

但是关于错误文件类型的错误不是通过客户端验证显示的,而是像往常一样的验证错误。

是否存在通过客户端验证显示验证错误的任何方式?

4

1 回答 1

1

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

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

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

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

使用 jquery 验证插件的好处在于它还可以方便地进行其他客户端验证,例如电子邮件、密码等。

于 2012-04-23T00:24:21.093 回答