需要帮助理解Socket.io(node.js)中的以下jQuery代码?

时间:2015-06-15 12:06:08

标签: javascript jquery node.js socket.io

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方面。

1 个答案:

答案 0 :(得分:2)

逐行采取:

socket.emit('chat message', $('#m').val());

此行将聊天消息作为#m字段中指定的值发送。

$('#m').val('');

发送邮件后,此行会清除#m字段中的值。

return false;

返回false会停止默认事件行为,在这种情况下会阻止form元素提交。如果您愿意,也可以在传递的preventDefault()上使用event