按Enter键提交评论?

时间:2014-02-19 23:29:16

标签: javascript jquery html forms meteor

我正在使用本教程(http://code.tutsplus.com/tutorials/real-time-messaging-for-meteor-with-meteor-streams--net-33409)与Meteor进行聊天应用程序,如果您按Enter键,我会坚持尝试将其设置在哪里提交您的评论而不必每次都按下发送按钮。 / p>

以下是应用用于通过按“发送”按钮提交评论的JavaScript代码,但有人知道我需要输入哪些代码才能通过按Enter提交评论吗?

// when Send Chat clicked add the message to the collection
Template.chatBox.events({
  "click #send": function() {
    var message = $('#chat-message').val();
    chatCollection.insert({
     userId: 'me',
     message: message
   });
   $('#chat-message').val('');

   //add the message to the stream
   chatStream.emit('chat', message);
  }
});
chatStream.on('chat', function(message) {
  chatCollection.insert({
    userId: this.userId,
    subscriptionId: this.subscriptionId,
    message: message
  });
});

2 个答案:

答案 0 :(得分:4)

我建议您将表单放在<form> - 元素中,如果使用<input> - 元素而不是<textarea> - 元素,则可以免费获得此功能(如果我在一个<textarea> - 元素中写了一个文本,当我按下输入时我提交了表单我会发疯!)。只需听取表格submit事件。

答案 1 :(得分:2)

您需要捕获keypress事件并在其中执行相同的操作:

 function sendMessage() {
   var message = $('#chat-message').val();
    chatCollection.insert({
     userId: 'me',
     message: message
   });
   $('#chat-message').val('');

   //add the message to the stream
   chatStream.emit('chat', message);
  }

  Template.chatBox.events({
      // Capture the `keyup` event on the `input` element.
      "keyup input": function(ev) {
        if(ev.which === 13) {  // If it was an enter key
          sendMessage();
        }
      },
      "click #send": function () { sendMessage(); }
    });