所以我有一个包含文本、整数和文件上传字段的多部分表单。
我可以将 dataAnnotations 和 validationMessageFor 用于 text 和 int 字段,但不能用于文件上传。所以我实现了以下代码来验证文件上传:
$(document).ready(function() {
$("#Error").hide();
var pdfFile = '<%=Model.PdfFile %>';
if (pdfFile == null || pdfFile1 == "") {
$("#Submit").click(function() {
var ext = $('#File').val().split('.').pop().toLowerCase();
var file = $('#File').val();
if ((!file || ext != 'pdf')) {
$('#Error').show();
return false;
}
return true;
});
}
});
这段代码工作得很好,据我目前所知,但它在检查其他字段之前执行,所以它看起来很草率。换句话说,如果用户在点击提交时表单上有多个错误,则会显示文件上传的验证消息,但不会显示其他字段。如果用户随后上传了一个有效文件并再次单击提交,则会出现其他字段的验证消息。邋遢。所以我也尝试为文本框实现 jQuery 验证,但由于某种原因这不起作用:
$(document).ready(function () {
$("#captionVal").hide();
$("#Submit").click(function () {
var caption = $("#Caption").val();
if (!caption || caption == "") {
$("#captionVal").show();
return false;
}
return true;
});
});
似乎它总是将该字段读取为 null,因此它永远不会返回 true。
我尝试添加
$("Caption").change(function() {
也
$("#Caption").bind(function() {
在if语句前面,但无济于事。
我还尝试使用 jQuery 验证
$(document).ready(function () {
$("#term").validate();
});
但这根本没有做任何事情(也许我只是不明白如何使用插件?)
所以我的问题是,如何验证文本框?
我真正需要做的就是确保它们不为空,并且如果它们在提交单击时显示错误标签(不是弹出窗口)或者我如何使用验证插件?我已经下载了 .zip 文件并添加(并引用了) .validate.js 文件,但是 .validate 方法似乎没有做任何事情?