【发布时间】:2020-11-03 12:48:05
【问题描述】:
我尝试使用 jquery validate 但我花了 4 个多小时来搜索如何解决我的问题但找不到它。问题是当我尝试对多维数组中的文件大小使用 jquery validate 时,它不起作用。它仍然可以提交表单并且不显示错误消息。
这是我的领域
var numberIncr = 1;
$('#add-berkas').click(function () {
var box_html = $('<div class="text-box form-group row">\n' +
' <div class="col-sm-8">\n' +
' <input type="text" name="berkas['+numberIncr+'][nama]" placeholder="Nama File" class="form-control" required>\n' +
' </div>\n' +
' <div class="col-sm-4">\n' +
' <input type="file" name="berkas['+numberIncr+'][file]" id="berkasfile'+numberIncr+'" accept="application/pdf" required/>\n' +
' <button id="remove-berkas" class="btn btn-sm btn-danger remove-box" type="button"><i class="fa fa-trash"></i></button>\n' +
' </div>\n' +
' </div>');
$('.text-box:last').after(box_html);
box_html.fadeIn('slow');
numberIncr++;
});
这是验证
$.validator.addMethod('filesize', function (value, element, param) {
return this.optional(element) || (element.files[0].size <= param)
}, 'File size must be less than {0}');
var berkas = $('input[name^="berkas"]');
berkas.filter('input[name$="[file]"]').each(function() {
$(this).rules("add", {
extension: "pdf", filesize:1048576,
messages: "Berkas must be PDF and less than 1MB"
});
});
$("#form").validate({
rules: {
surat: {extension: "pdf", filesize: 1048576, },
},
messages: {
surat: "Surat must be PDF and less than 1MB",
},
errorPlacement: function(error,element){
showErrorMessage(error.text());
},
submitHandler: function(form) {
form.submit();
},
highlight: function(element, errorClass) {
return false;
}
});
【问题讨论】:
-
“不起作用” 不够好。请编辑问题以清楚地描述问题以及任何故障排除步骤。你看过 DOM 吗?哪个部分不工作?
-
我仍然可以提交表单,而文件大小超过 1 MB @Sparky
-
您是否进行了故障排除?你检查过你的 DOM 吗?为什么您没有向我们展示您的 HTML 标记?当它不是多维数组时,您的自定义验证是否有效?
标签: javascript jquery jquery-validate