用于文件上传的javascript表单验证

时间:2012-01-17 21:05:10

标签: javascript forms validation

我有一个包含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();
}

1 个答案:

答案 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 验证时,该函数才会返回此值。