проверка формы javascript для загрузки файла - PullRequest
0 голосов
/ 18 января 2012

У меня есть форма, которая включает в себя 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 Ответ

2 голосов
/ 18 января 2012

(тест здесь ):

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 в конце, поэтому функция возвращает это значение, только если она прошла все проверки.

...