我有一个输入文件类型,并将寻找文件的扩展名以验证它不是jpg,png或空,但是当我在if中添加各种条件时,它总是给我错误(总是输入if)。
var file = $("input[name=logo]", "#form").val();
var extension = file.replace(/^.*\./, '');
console.log(extension);
if (extension !== "jpg" || extension !== "png" || extension !== "") {
$('.error-message').css({
'display': 'block'
});
$(".error-message span").html('Ups! Please insert a png or jpg file!');
$('.error-message').fadeIn('slow', function () {
$('.error-message').delay(7000).fadeOut('slow');
});
return false;
}
感谢所有
答案 0 :(得分:2)
让我们看看你的情况:
(extension !== "jpg" || extension !== "png" || extension !== "")
那里出了点问题......
如果这三个中的一个是true
,那么继续。如果扩展名为jpg
,则它不能为png
,因此条件为真。
无论你做什么,你的条件都是真的。
你看到了问题吗?你有错误的操作员。试试:
(extension !== "jpg" && extension !== "png" && extension !== "")
答案 1 :(得分:1)
所以,让我们来看看这一行:
(extension !== "jpg" || extension !== "png" || extension !== "")
这相当于:
!(extension === "jpg" && extension === "png" && extension === "")
。
这可能会让我们更容易看到这一切都是真的。 extension
不能等于这三件事。
你真正想要的是
(extension !== "jpg" && extension !== "png" && extension !== "")