2014-02-20 6 views
2

Я работаю над приложением чата, созданным с помощью Meteor, основанного на этом уроке (http://code.tutsplus.com/tutorials/real-time-messaging-for-meteor-with-meteor-streams--net-33409), и я пытаюсь сделать это, если вы нажмете enter, он отправит ваше сообщение, вместо того, чтобы нажать кнопку «Отправить».Отправить сообщение нажатием enter?

Ниже приведен код javascript, который использует приложение для отправки комментария, нажав кнопку «Отправить», но кто-нибудь знает, как добавить функцию ввода?

// 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

Вы должны проверить для ключа пресс-конференции. Полный список кодов для каждого ключа можно найти здесь: http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

Лучший способ сделать это - сделать функцию в событии клика именованной функцией, а затем вы можете просто запустить ту же функцию для обоих событий.

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); 
    }, 
    "keypress #chat-message": function(e) { 
    if (e.which == 13) { 
     console.log("you pressed enter"); 
     //repeat function from #send click event here 
    } 
    } 
}); 
+0

Спасибо, что это сработало и ответили на мой вопрос. Также спасибо за объяснение этого, вместо того, чтобы просто дать мне код, так как я пытаюсь узнать, что это было полезно :) – 5AMWE5T

2
'keypress #send': function (evt) { 
    if (evt.which === 13) { 

13 является скан для входа. Если вы хотите изменить его, вы можете найти javascript keycodes, чтобы вы могли привязываться к тому, что вам нравится.

Вы можете рассмотреть ознакомившись с apihttp://docs.meteor.com/

+0

Спасибо. Я искал что-то подобное, чтобы помочь мне узнать больше о Метеор, и теперь вы нашли это так спасибо! – 5AMWE5T

Смежные вопросы