我目前正在尝试使用jQuery来验证textarea或用户上传的文件。唯一不应该允许某人进入下一页的时间是当textarea和上传的文件isValid都为false时。对文件和文本区域的jQuery验证
这是我的代码有
$(document).ready(function() {
$('#nomination-submit').click(function (e) {
var fileValid = false;
var textValid = true;
$('textarea').each(function() {
if ($.trim($(this).val()) == '') {
textValid = false;
//binds to onchange event of your input field
$('file').bind('change', function() {
var ext = $('#file').val().split('.').pop().toLowerCase();
if ($.inArray(ext, ['pdf', 'doc', 'docx', 'rtf', 'txt']) == -1)
{ $('#fileExtension').slideDown("slow"); $('#fileSize').slideUp("slow"); fileValid = true; } else {
var filesize = (this.files[0].size);
if (filesize > 4194304)
{ $('#fileSize').slideDown("slow"); fileValid = false; } else { fileValid = true; $('#fileSize').slideUp("slow"); }
$('#fileExtension').slideUp("slow"); $('#textOrFile').slideUp("slow");
}
})
}
})
if (fileValid == false && textValid == false) {
e.preventDefault();
{ $('#textOrFile').slideDown("slow"); }
}
}) });
当我有像这样将允许用户去即使输入是无效的下一个页面。出于某种原因,当我这样做或嵌套的if函数时,它不能确保两者都不是错误的,这是我希望用户进入下一页的唯一时间。
只是一个观察,但你直到他们尝试不改变你绑定事件提交。这可能比提交事件更好?另外''('input'[type ='file']')。on('change','not'$('file')'可能会更有效。 –
@MarkSchultheiss原本这些是两个独立的验证代码片段。我需要合并这两段代码,这是它在我脑海中的意义,否则我会把它放在提交按钮之前,但似乎并不适合放置它 – race155