这个if / else Javascript函数有什么问题?

时间:2016-01-04 00:02:29

标签: javascript jquery if-statement socket.io

$('.chatterbox_comment_form').submit(function(e){
    e.preventDefault();

    var file        = $('#chatterbox_comment_file_upload_1')[0].files[0];
    var reader      = new FileReader();
    var white_space = /^\s+$/;
    var file_val    = $('#chatterbox_comment_file_upload_1').val();
    var exts        = ['jpg', 'jpeg', 'png', 'bmp', 'gif', 'svg'];
    var comment_textarea = $('.form_comment_input');

    if(!file) {

        if(comment_textarea.val() == '' || white_space.test(comment_textarea.val())) {  
            $('.chatterbox_comment_error').html("Can't be blank");
            comment_textarea.css('border', '1px solid #b20000');
        }
        else {
            socket.emit('chatterbox comment', comment_textarea.val(), user.name);
            $('.chatterbox_comment_error').html("");
            comment_textarea.css('border', '1px solid #ccc');
        }
    }
    else if(file)
    {

        var get_ext = file_val.split('.');

        get_ext = get_ext.reverse();

        if(!$.inArray(get_ext[0], exts) > -1) 
        {
            $('.chatterbox_comment_error').html('Only .jpg .png .bmp .gif .svg files are allowed');
        } 
        else 
        {
            // file_val exists and the extension is valid.
            reader.onload  = function(evt) {
                socket.emit('chatterbox comment', $('.form_comment_input').val(), user.name, evt.target.result);
            };

            reader.readAsDataURL(file);
            $('.chatterbox_comment_error').html("");
            comment_textarea.css('border', '1px solid #ccc');
        }

    } 

        $('#chatterbox_comment_file_upload_1').val('');
});

我要做的是提交这个textarea,检查是否只有空白输入并检查上传的文件是否有效(png jpg bmp或svg),如果不是,则显示错误信息。如果有效,则将其发送到节点服务器。这个功能有点起作用。它验证了完全空白的输入,但是当尝试发送图像时它不会发送它并且它不会验证不正确的文件上传,例如.pdf。我相信我的if / else语句不知何故被错误地写了。有什么建议?欢呼声

这是带有处理socket.emit调用的函数的server.js

socket.on('chatterbox comment', function(data, username, image){
    console.log(data, username, image);
    // io.sockets.in(socket.room).emit('chatterbox comment', data, username, image);
});

1 个答案:

答案 0 :(得分:1)

在 检查file_val后,您似乎还有 。我想你想在检查无效扩展名后这样做。

这个怎么样?

SELECT 
    StaffTable.TeacherType,     
    StaffTable.StaffID,
    TeacherQualificationsTable.YearOfGraduation,
    TeacherQualificationsTable.SubjectMajorsCombination,
    STUFF((SELECT 
               ', ' + [DegreeObtained] 
           FROM 
               TeacherQualificationsTable FOR XML PATH('')),1,1,'') AS [DegreeObtained]
    FROM     
        StaffTable 
    INNER JOIN
        TeacherQualificationsTable 
    ON 
        StaffTable.StaffID = TeacherQualificationsTable.StaffID 
    INNER JOIN
        AppointmentChronologyTable ON StaffTable.StaffID = AppointmentChronologyTable.StaffID
    WHERE  
        (StaffTable.TeacherType = @TeacherType) 
        AND (StaffTable.StaffStatus = @StaffStatus) 
        AND DegreeObtained NOT CONTAINS ('B.Ed (Bachelor of Education)' , 'M.Ed (Master of Education)', 'G.D.E (Graduate Diploma in Education)')
    ORDER BY 
        StaffTable.LastName, 
        StaffTable.FirstName, 
        StaffTable.MiddleName