0

我已经创建了这个脚本:

function validate(f)

    {

    var fname="txt_nama";
    var fld=document.getElementById(fname);

    var fup1 = document.getElementById('file_id');
    var fileName1 = fup1.value;
    var ext1 = fileName1.substring(fileName1.lastIndexOf('.') + 1);
    var file1 = fup1.files;

    var fup2 = document.getElementById('file_foto');
    var fileName2 = fup2.value;
    var ext2 = fileName2.substring(fileName2.lastIndexOf('.') + 1);
    var file2 = fup2.files;

    var email_re = /[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i;
    if(fld.value == "")
            {      
            alert("Please enter your name");
            fld.focus();
            return false;
            }      


    else if(f.txt_email.value == "")
            {
            alert("Please enter your email address.");
            f.txt_email.focus();
            return false;                                  
            }

    else if (!email_re.test(f.txt_email.value))
            {
            alert("Invalid E-mail address.");
            f.txt_email.focus();
            return false;
            }      

    else if(fup1.value == "")
            {      
            alert("Please enter your Scan identity");
            fup1.focus();
            return false;
            }      

    else if(ext1 != 'jpg' || ext1 != 'GIF' || ext1 != 'JPEG' || ext1 != 'jpeg' || ext1 != 'gif' || ext1 !=       'JPG' || ext1 != 'png' || ext1 != 'PNG')
            {
            alert("Upload images with extention JPG, PNG, or GIF only");
            fup1.focus();
            return false;
            }

    else if(file1.size>200000)
            {
            alert("Max size of Scan data is 200Kb");
            fup1.focus();
            return false;                                                  
            }

    else if(fup2.value == "")
            {      
            alert("Please enter your Photo");
            fup2.focus();
            return false;
            }

    else if(ext2 != 'jpg' || ext2 != 'GIF' || ext2 != 'JPEG' || ext2 != 'jpeg' || ext2 != 'gif' || ext2 != 'JPG' || ext2 != 'png' || ext2 != 'PNG')
            {
            alert("Upload images with extention JPG, PNG, or GIF only");
            fup2.focus();
            return false;
            }

    else if(file2.size>200000)
            {
            alert("Max size of Scan data is 200Kb");
            fup2.focus();
            return false;                                          
            }      


    else{

            return true;}

    }

我在文件上传验证中遇到问题,当我输入正确的文件扩展名时它仍然是错误的或仍在验证,我是否在 if-else 中犯了一些错误?

有人可以帮我吗?

4

2 回答 2

1

在测试扩展时,您应该使用 AND,而不是 OR:

else if(ext1 != 'jpg' && ext1 != 'GIF' && ext1 != 'JPEG' && ext1 != 'jpeg' && ext1 != 'gif' && ext1 !=  'JPG' && ext1 != 'png' && ext1 != 'PNG')

如果任何论点为真,则 OR 为真。因此,如果扩展名是jpg,则为ext1 != 'GIF'真,因此整个测试将为真。

于 2013-08-27T08:32:35.833 回答
0

正如巴尔玛所说,你的情况是错误的。

将来,尝试调试代码。在浏览器的调试器中运行它(请参阅手册/文档如何启动它)或添加console.log()如下几个地方:

        var fup1 = document.getElementById('file_id');
        var fileName1 = fup1.value;
        var ext1 = fileName1.substring(fileName1.lastIndexOf('.') + 1);
        var file1 = fup1.files;

        console.log([fup1, fileName1, ext1]);

这会将对象放在浏览器的控制台上,您可以在其中检查它们以查看它们是否包含您期望的内容。

于 2013-08-27T08:33:09.790 回答