【问题标题】:jQuery Validator Does Not Validate Input File TypejQuery Validator 不验证输入文件类型
【发布时间】:2013-05-09 06:38:37
【问题描述】:

我已经编写了一个上传表单,我希望用户能够只上传图片。 我决定使用 jQuery 验证器来确保用户不能发送空表单而只能上传图像。到目前为止,用户确实无法发送空表单,但他们可以上传和归档他们想要的,即使它不是图像。 这是jsFunc.js的代码,旨在解决这个问题:

$(document).ready(function () {
$('#upload-image').validate({
    errorElement : "span",
    errorPlacement: function(error, element) {
        error.appendTo(".upload-error");
    },
    rules: {
        pic: {
            required: true,
            accept: "image/*"
        }
    }
});
});

以下是包含上传表单的页面中包含的文件:

<script src="bootstrap/js/jquery.js"></script>
<script src="bootstrap/js/bootstrap.js"></script>
<script type="text/javascript" src="sys/jsFunc.js"></script>
<script type="text/javascript" src="sys/additional-methods.js"></script>
<script type="text/javascript" src="sys/jquery.validate.js"></script>

上面的代码有什么问题?如果有人能指出我的问题,我将不胜感激。

【问题讨论】:

  • 对我来说似乎很好jsfiddle.net/arunpjohny/9kYYH/1
  • @ArunPJohny,谢谢,我也使用 jsfiddle 检查了它,这就是为什么它看起来很奇怪。我没有编辑帖子并包含我正在导入的文件,也许它有问题/丢失?
  • 导入顺序不对jquery.validate.js先additional-methods.js

标签: jquery validation jquery-validate jquery-validation-engine


【解决方案1】:

脚本文件导入顺序错误,先jquery.validate.js再additional-methods.js

<script type="text/javascript" src="sys/jquery.validate.js"></script>
<script type="text/javascript" src="sys/additional-methods.js"></script>

【讨论】:

  • 首先感谢您的回答!我想知道为什么文件导入的顺序很重要?
  • 因为附加方法文件使用 validate.js 文件中包含的功能。所以当 additional-methods 文件被执行时,它期望 validate.js 文件已经被执行
【解决方案2】:

如果您尝试通过文件扩展名进行验证或仅接受具有特定扩展名的图像,您可以像这样使用

rules: {
   field: {
     required: true,
     extension: "jpeg|png"
   }
}

见:http://docs.jquery.com/Plugins/Validation/CustomMethods/extension#extension

【讨论】:

  • 你能分享一下jsfiddle吗?
  • 请您在验证后如何将文件字段和文本字段的值收集到另一个页面中
【解决方案3】:
rules: {
   field: {
     required: true,
     accept: "jpeg|png"
   }
}

用接受替换扩展名,它会工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多