我有一个输入文件类型,并将寻求文件的扩展名,以验证它不是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;
}感谢所有人
发布于 2014-02-25 18:59:07
让我们看看你的情况:
(extension !== "jpg" || extension !== "png" || extension !== "")有些地方不对劲..。
如果这三个中的一个是true,那么继续。如果扩展是jpg,那么它不能是png,所以条件是真的。
不管你做什么,你的条件都是真的。
你看到问题了吗?你找错接线员了。试着:
(extension !== "jpg" && extension !== "png" && extension !== "")演示代码片段的JSFiddle
发布于 2014-02-25 18:59:49
那么,让我们来看看这一行:
(extension !== "jpg" || extension !== "png" || extension !== "")
这相当于:
!(extension === "jpg" && extension === "png" && extension === "")。
这可能会使我们更容易看到这将永远是真的。extension不能等于这三件事。
你真正想要的是
(extension !== "jpg" && extension !== "png" && extension !== "")
https://stackoverflow.com/questions/22023551
复制相似问题