我有一个包含3个文本字段的表单,因此用户可以上传文件。他们必须选择上传至少1个文件,文件必须是jpg,png,pdf。我试图使用javascript验证这一点,并检查用户是否被选中至少1个文件,格式是正确的上传前我有以下代码,但它不起作用。我希望有人能帮助你。
我目前的代码:
function validate_ext() {
var filename = document.getElementById("file1").value;
var filename2 = document.getElementById("file2").value;
var ext = getExt(filename);
var ext2 = getExt(filename2);
if((ext == "pdf") || (ext=="PDF") || (ext=="jpg") || (ext=="jpeg") || (ext=="png") || (ext=="PNG"))
return true;
alert("Please upload files in correct format only.");
return false;
if(filename2!=''){
if((ext2 == "pdf") || (ext2=="PDF") || (ext2=="jpg") || (ext2=="jpeg") || (ext2=="png") || (ext2=="PNG"))
return true;
alert("Please upload files in correct format only.");
return false;
}
}
function getExt(filename) {
var dot_pos = filename.lastIndexOf(".");
if(dot_pos == -1)
return "";
return filename.substr(dot_pos+1).toLowerCase();
}
答案 0 :(得分:2)
(测试here):
function getExt(filename) {
var dot_pos = filename.lastIndexOf(".");
if (dot_pos == -1) {
return "";
}
return filename.substr(dot_pos + 1).toLowerCase();
}
function validate_ext() {
var filename = document.getElementById("file1").value;
var filename2 = document.getElementById("file2").value;
var ext = getExt(filename);
var ext2 = getExt(filename2);
if (!((ext == "pdf") || (ext == "jpg") || (ext == "jpeg") || (ext == "png"))) {
alert("Please upload files in correct format only.");
return false;
}
if (filename2 != "") {
if (!((ext2 == "pdf") || (ext2 == "jpg") || (ext2 == "jpeg") || (ext2 == "png"))) {
alert("Please upload files in correct format only.");
return false;
}
}
return true;
}
你有几个错误。
sjums
关于转换为小写的扩展名的内容,您不需要与大写字符串进行比较。true
,则代码只会在应该进行第二次检查时返回。我最后还添加了一个return true
,所以只有在传递 all 验证时,该函数才会返回此值。