使用JQUERY检查文件扩展名无效

时间:2016-05-22 12:33:12

标签: jquery

我有这个jquery

$("#Nameupload").change(function(e) {
            if ($(this).val()!="") {
                $(".PhotShow").slideDown(500,function(){
                $('html, body').animate({ scrollTop: 1000}, 900);
                });
                var filename = $(this).val();
                var extension = filename.replace(/^.*\./, '');
                if (extension == filename) {
                    extension = '';
                } else {
                    extension = extension.toLowerCase();
                }
                if (extension!="png" || extension!="jpg" ) {
                    $(".PhotShow").html("Some text and markup");
                }
               readURL(this);
            }
     });

所以我想在这里做的是检查文件的扩展名,但即使我把

 alert(extension);

它返回" jpg" 但是这段代码仍在运作

 $(".PhotShow").html("Some text and markup");

可能是什么问题?

1 个答案:

答案 0 :(得分:2)

问题在于if语句中的逻辑。如果文字不是png而且不是jpg,那么您的条件将始终被命中,因为这些语句中至少有一个始终为真。将您的逻辑条件更改为&&

if (extension != "png" && extension != "jpg") {
    $(".PhotShow").html("Some text and markup");
}

另请注意,您可以稍微清除代码,以验证文件名是否存在(它始终位于change事件中),以便可以删除检查值的if条件。另请注意,您可以split() .的值pop()$("#Nameupload").change(function(e) { $(".PhotShow").slideDown(500, function() { $('html, body').animate({ scrollTop: 1000 }, 900); }); var extension = $(this).val().split('.').pop().toLowerCase(); if (extension != "png" && extension != "jpg") { $(".PhotShow").html("Some text and markup"); } else { readURL(this); } }); 数组的最后一个元素作为获取扩展的更整洁的方式。试试这个:

void queueAdd (queue *q, char* new){
    q->addr[q->tail] = (char*)malloc(sizeof(char));