1

jQuery validate 有一个额外的插件叫做 accept

http://jqueryvalidation.org/accept-method

例如,这允许您在上传表单上验证文件类型

所以你可以有一些看起来像的代码

$("#addNewDocumentForm").validate({
rules: {
     inputDocument: { required: true, accept: "png|jpe?g|gif|pdf"  }
},
messages: {
     inputDocument: "File must be PDF, DOCX, JPG, GIF or PNG"               
},
submitHandler: function(e) {
      ...

问题是在 ie 8 或 9 中使用它,因为虽然它会执行所需的部分,但它不会执行接受位,因为它使用 HTML5 的文件 API 部分

我想知道是否有人遇到过类似的问题?如果他们找到任何 polyfills 等?

4

1 回答 1

1

您正在犯两个可能的错误之一:

  1. 使用错误的规则来验证文件扩展名。
  2. 使用错误的参数来验证mime-type.

accept方法仅用于验证mime-type

假设您想通过文件扩展名进行验证,那么您将需要使用该extension方法。

阅读并比较这两种方法的文档:extensionaccept.

两者acceptextension都是插件自己的additional-methods.js文件的一部分。

$("#addNewDocumentForm").validate({
    rules: {
        inputDocument: {
            required: true,
            extension: "png|jpg|gif|pdf"
        }
    },
    messages: {
        inputDocument: "File must be PNG, JPG, GIF or PDF"               
    },
    submitHandler: function(form) {
        ...
于 2013-08-27T20:12:36.120 回答