html文件
<script>
var socket = io();
$('form').submit(function(){
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
socket.on('chat message', function(msg){
$('#messages').append($('<li>').text(msg));
});
</script>
io.on( "connection", function(socket)
{
console.log( "A user connected" );
socket.on('disconnect', function(){
console.log('user disconnected');
});
socket.on('chat message', function(msg){
console.log('message: ' + msg);
});
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});
});
我不理解jQuery语法中的这部分代码:
$('#m').val('');
return false;
由于我已经通过socket.emit('chat message', $('#m').val());
发送了socket输入值,为什么输入字段“m”(我的表单中只是一个输入字段)需要设置为空字符串?然后返回假部分?代码运行正常,来自socket.io/chat
请解释jQuery方面。
答案 0 :(得分:2)
逐行采取:
socket.emit('chat message', $('#m').val());
此行将聊天消息作为#m
字段中指定的值发送。
$('#m').val('');
发送邮件后,此行会清除#m
字段中的值。
return false;
返回false会停止默认事件行为,在这种情况下会阻止form
元素提交。如果您愿意,也可以在传递的preventDefault()
上使用event
。