我想了解一些事情。如果我做以下
if( $("#fileOne")[0].files[0].type != 'application/pdf') {
errors.push("- Please upload correct document type");
}
它可以正常工作......如果我不上传PDF,我会收到错误,如果我这样做,我就不会收到错误。但是,如果我将其更改为以下
if( $("#fileOne")[0].files[0].type != 'image/bmp' ||
$("#fileOne")[0].files[0].type != 'image/jpeg' ||
$("#fileOne")[0].files[0].type != 'image/pjpeg' ||
$("#fileOne")[0].files[0].type != 'image/png' ||
$("#fileOne")[0].files[0].type != 'image/tiff' ||
$("#fileOne")[0].files[0].type != 'application/pdf')
{
errors.push("- Please upload one of the valid document types");
}
如果我上传PDF或其中列出的任何其他文件,它仍然会抛出错误。似乎添加所有额外的类型似乎使它失败。
这有什么理由吗?
由于
答案 0 :(得分:2)
看看你的逻辑:
如果它不是位图,或者它不是JPEG
如果 是位图,则不是 JPEG,反之亦然。
你的情况永远不会成真。
你想要AND测试而不是OR测试。
答案 1 :(得分:1)
你必须使用OR的内容:
if( $("#fileOne")[0].files[0].type != 'image/bmp' &&
$("#fileOne")[0].files[0].type != 'image/jpeg' &&
$("#fileOne")[0].files[0].type != 'image/pjpeg' &&
$("#fileOne")[0].files[0].type != 'image/png' &&
$("#fileOne")[0].files[0].type != 'image/tiff' &&
$("#fileOne")[0].files[0].type != 'application/pdf')
{
errors.push("- Please upload one of the valid document types");
}
答案 2 :(得分:-1)
使用&&而不是||:
var ftype = $("#fileOne")[0].files[0].type;
if( ftype != 'image/bmp' &&
ftype != 'image/jpeg' &&
ftype != 'image/pjpeg' &&
ftype != 'image/png' &&
ftype != 'image/tiff' &&
ftype != 'application/pdf') {
errors.push("- Please upload one of the valid document types");
}