| 
1 
2 
3 
4 
5 
6 
7 
8 
9 | 
$('input#message').keydown(function(key) { 
           if (key.keyCode == 13 && $('#name').val()!='' && $('#message').val()!=''){ 
                   socket.emit('message',{ 
                    name :$('#name').val(), 
                    message:$('#message').val(), 
                    date: new Date().toUTCString() 
                }); 
        } 
}); | cs | 
키 이벤트를 이용하여 enter키가 입력이 되면 다음과 같이 click이벤트가 발생했을 때 처럼 데이터를 전송
keydown(function(key){
키가 눌릴때 눌린 키의 값을 key로 받게된다
엔터는 13이다.....
그래서 엔터과 눌리고 닉네임과 메시지가 내용이 있을때 작동을 하도록 하였다.
초기에 값을 엔터치는 영역을
input#message로 한 이유는
input으로 해버리면 초기에 닉네임을 입력하는 부분에서 엔터를 치면 채팅은 보이지 않지만 채팅을 하력 하기때문에
아무런 일이 일어나지 않게 된다.
전에 그 input란에 문자가 있으면 그 문자가 계속 날아가기 때문에 메시지가 입력되는 input을 선택해서 그 부분만 작동되게 해준다.
| 
1 
2 
3 
4 | 
$('input#message').val(function(index, item){ 
    return ""; 
}); | cs | 
클라이언트에게 메시지를 띄어주는 부분 마지막에 이처럼 코드를 입력을 해주면
메시지 입력란이 메시지를 띄어주고 공백으로 바뀌게 된다.
| 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 | 
<script> 
    $(document).ready(function(){ 
        var socket = io.connect(); 
        socket.on('message',function(data){ 
            var output = ''; 
            output += '
 
            output += '      nick : '+ data.name + ' | 
            output += '     message : ' + data.message + '
';
            output += '     date : ' + data.date + '
';
            output += '
';
            $(output).prependTo('#content');
            $('#content').listview('refresh');
            $('input#message').val(function(index, item){
                return "";
            });        
        });
        $('button').click(function () {             //버튼을 클릭시
            if($('#name').val()!='' && $('#message').val()!=''){
                socket.emit('message',{
                    name :$('#name').val(),
                    message:$('#message').val(),
                    date: new Date().toUTCString()
                });
            }
        });
        $('input#message').keydown(function(key) {
               if (key.keyCode == 13 && $('#name').val()!='' && $('#message').val()!=''){
                     socket.emit('message',{
                       name :$('#name').val(),
                      message:$('#message').val(),
                        date: new Date().toUTCString()
                       });
              }
        });
    });
</script>
수정후 전체적인 소스
댓글
댓글 쓰기