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>
수정후 전체적인 소스
댓글
댓글 쓰기