我正在尝试使用Parsley.js验证上传文件的大小。我也对其他方法持开放态度。(我尝试使用其他方法均未成功)。如果可以的话,这种方法将是我最想要的一种方法-如果可以的话。(主要是因为我将欧芹用于所有其他验证)。
我收到的错误消息是:未捕获的TypeError:无法调用null的方法“ parsley”。我也曾尝试修改其他代码,但均未成功。
这是欧芹文档。
是的,这是针对类中的PHP项目的(不需要此部分)。但是,当上传的文件太大时(我曾经使用php提交过一次以检查文件大小),这会破坏我的sql上传。因此,我尝试在上传之前验证客户端。我取得了零成功。如果文件太大,我需要不提交表格。另外,我的确意识到我尝试的方法可能无法在所有浏览器中使用。
我包括以下脚本:
<script language="javascript" src="js/jquery-1.10.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script language="javascript" src="js/parsley.js"></script>
这是我的自定义欧芹代码(在此处找到):
<script language="javascript">
$('myFile').parsley({
validators: {
filemaxsize: function (val, max_megabytes, parsleyField) {
if (!Modernizr.fileapi) { return true; }
var $file_input = $(parsleyField.element);
if ($file_input.is(':not(input[type="file"])')) {
console.log("Validation on max file size only works on file input types");
return true;
}
var max_bytes = max_megabytes * BYTES_PER_MEGABYTE, files = $file_input.get(0).files;
if (files.length == 0) {
// No file, so valid. (Required check should ensure file is selected)
return true;
}
return files.length == 1 && files[0].size <= max_bytes;
}
},
messages: {
filemaxsize: "The file cannot be more than 1.5 megabytes."
}
});
</script>
这是我的表单代码(我删除了许多其他表单字段):
<form action="register.php" enctype="multipart/form-data" method="post" autocomplete="on" class="form-horizontal" parsley-validate id="register">
<div class="fields">
<div class="field upl">
<label for="file">Face picture:</label>
<input data-filemaxsize="1.5" type="file" name="file" id="myFile" accept="image/jpeg" required/>
</div>
<input type="submit" value="Register" class="login" id="register" onsubmit="return validation(this)" />
</div>
</form>
另外::(!Modernizr.fileapi)->这段代码是做什么的/指的是什么?
问题是我使用的原生质日期选择器。通过切换到jQuery验证插件,我解决了自己遇到的问题。验证器现在效果很好!但是,我确实使用php运行所有相同的验证服务器端。我非常感谢您的投入,最终切换库解决了所有问题!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句