如何在按键事件中提醒价值?

时间:2018-10-12 09:33:42

标签: jquery window chat

$(document).ready(function(){
    var arr = [];   
    $(document).on('click', '.msg_head', function() {   
        var chatbox = $(this).parents().attr("rel") ;
        $('[rel="'+chatbox+'"] .msg_wrap').slideToggle('slow');
        return false;
    });
    $(document).on('click', '.close', function() {  
        var chatbox = $(this).parents().parents().attr("rel") ;
        $('[rel="'+chatbox+'"]').hide();
        arr.splice($.inArray(chatbox, arr), 1);
        displayChatBox();
        return false;
    });
    $(document).on('click', '#sidebar-user-box', function() {
        var userID = $(this).attr("class");
        var username = $(this).children().text() ;
        if ($.inArray(userID, arr) != -1)
        {
            arr.splice($.inArray(userID, arr), 1);
        }
        arr.unshift(userID);
        chatPopup = '<div class="msg_box" style="right:270px;z-index: 1000;" id="'+userID+'" rel="'+ userID+'">'+
                    '<div class="msg_head">'+username +
                    '<div class="close">x</div> </div>'+
                    '<div class="msg_wrap"> <div class="msg_body"><div class="msg_push"></div></div>'+
                    '<div class="msg_footer"><textarea class="msg_input" rows="4" placeholder="Type a message..." style="padding: 8px;" id="'+userID+'"></textarea></div>'+
                    '<button type="submit" name="submit" id="'+userID+'" class="send_rec"><i class="fa fa-arrow-right"></i></button>    </div>  </div>' ;                   

        $("body").append(chatPopup);
        displayChatBox();
    });
    $(document).on('keypress', 'textarea' , function(e) {       
        if (e.keyCode == 13 ) {         
            var msg = $(this).val();        
            $(this).val('');
            if(msg.trim().length != 0){             
                var chatbox = $(this).parents().parents().parents().attr("rel") ;
                $('<div class="msg-right">'+msg+'</div>').insertBefore('[rel="'+chatbox+'"] .msg_push');
                $('.msg_body').scrollTop($('.msg_body')[0].scrollHeight);
            }
        }
    });
    function displayChatBox(){ 
        i = 270 ;
        j = 260;
        $.each( arr, function( index, value ) {  
            if(index < 4){
                $('[rel="'+value+'"]').css("right",i);
                $('[rel="'+value+'"]').show();
                i = i+j;             
            }
            else{
                $('[rel="'+value+'"]').hide();
            }
        });     
    }
    $(document).on("keypress", "button",function(){
        friend_id = this.id;
        alert(friend_id);
    });
});

在此代码中,我创建了一个聊天框窗口。现在,当我使用下面的代码作为警报值时,会发生什么情况。

$(document).on("keypress", "textarea",function(){
        friend_id = this.id;
        alert(friend_id);
    });

但是当我使用

$(document).on("keypress", "button",function(){
        friend_id = this.id;
        alert(friend_id);
    });

当我在按钮上使用keypress时什么都不会发生,我不知道为什么? button有什么问题?因此,在按钮keypress上如何显示警报框中的值?请帮助我。

谢谢

2 个答案:

答案 0 :(得分:0)

我认为您可能正在寻找click事件。您的代码可用于按键事件。

$(document).on("click", "button",function(){
        friend_id = this.id;
        alert(friend_id);
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btnTest">Test</button>

答案 1 :(得分:0)

从OP中的注释中获取更多信息后,很明显,他想在文本区域内按Enter键时提醒userID和文本区域值。实现此目的的一种方法是:

// Event handler on textareas
$('textarea').on("keypress", function (e) {

    // Detect Enter key pressed
    if(e.which === 13){

        // Get the userID
        let friend_id = this.id;

        // Get the textarea value
        let txt_val = this.value;

        // Alert the data
        alert('userID: '+friend_id+' Textarea Value: '+txt_val);
    }
});