我只需检查一个文件输入字段即可使用以下jQuery函数。我也有其他表格字段,但他们的验证由mootools处理。如果文件输入字段无效,那么无论是否提交其他表单字段,表单都不应该提交,而如果其他表单字段无效,那么表单不会被提交,因为mootools已经检查到位。所以我只想在文件输入字段无效的情况下不提交表单。
jQuery('#submit').live("click",function() {
valid = true;
if (jQuery('#jform_resume').val() == '') {
//jQuery('#controls span').html('please select a file');
jQuery('#jform_resume-lbl').addClass('invalid');
jQuery('#jform_resume').addClass('invalid');
valid = false;
}
else{
jQuery('#jform_resume-lbl').addClass('valid');
jQuery('#jform_resume').addClass('valid');
valid = true;
}
var file = jQuery('input[type="file"]').val();
var exts = ['doc','docx','pdf'];
// first check if file field has any value
if ( file ) {
// split file name at dot
var get_ext = file.split('.');
// reverse name to check extension
get_ext = get_ext.reverse();
// check file type is valid as given in 'exts' array
if ( jQuery.inArray ( get_ext[0].toLowerCase(), exts ) > -1 ){
jQuery('#jform_resume-lbl').addClass('valid');
jQuery('#jform_resume').addClass('valid');
valid = true;
} else {
jQuery('#jform_resume-lbl').addClass('invalid');
jQuery('#jform_resume').addClass('invalid');
valid = false;
//alert(get_ext[0]);
}
}
//check whether browser fully supports all File API
if (window.File && window.FileReader && window.FileList && window.Blob)
{
var fsize = jQuery('#jform_resume')[0].files[0].size;
if(fsize>2097152)
{
jQuery('#jform_resume-lbl').addClass('invalid');
jQuery('#jform_resume').addClass('invalid');
valid = false;
//alert(fsize);
}else{
jQuery('#jform_resume-lbl').addClass('valid');
jQuery('#jform_resume').addClass('valid');
valid = true;
}
}else{
alert("Please upgrade your browser, because your current browser lacks some new features we need!");
}
if (jQuery('#captcha').val() == '') {
//jQuery('#controls span').html('please select a file');
jQuery('#jform_captcha-lbl').addClass('invalid');
jQuery('#captcha').addClass('invalid');
valid = false;
}
else{
jQuery('#jform_captcha-lbl').addClass('valid');
jQuery('#captcha').addClass('valid');
valid = true;
}
if(!valid){
??
}
else{
??
}
});