2017-02-04 4 views
0

я имею нажмите функцию:Нажмите функцию от Enrr

$("#but").on('click', function(){ 
     $.post('/chat/send/', { 
      id: $(this).attr("name"), text: $('#text').val(), chat_id: $(".message-box").attr("chat-id"), 
       }, function(response) { 
      var options = ''; 
     $.each(response.data, function() { 
     options += '<p><b>' + this[0] + ':</b> ' + this[1] + '</p>'; 
      }); 
     $('#text').val(''); 
     $('.message-box').html(options); 
     }); 
     }); 

Когда я пытаюсь добавить функцию из завершения заполнения ввода с помощью Enter ключа он ничего не случился. Эта функция Enter представляет:

$('#text').keypress(function(e){ 
     if(e.which == 13){ 
      $("#but").on('click', function(){ 
      $.post('/chat/send/', { 
      id: $(this).attr("name"), text: $('#text').val(), chat_id: $(".message-box").attr("chat-id"), 
       }, function(response) { 
      var options = ''; 
     $.each(response.data, function() { 
     options += '<p><b>' + this[0] + ':</b> ' + this[1] + '</p>'; 
      }); 
     $('#text').val(''); 
     $('.message-box').html(options); 
     }); 
     }); 
     } 
    }); 

В HTML у меня есть:

<input id="text" type="text" name="message-text" size="63"> 
<input id="but" type="submit" name="Send" value="Send"> 
+0

on keypress Вы не стреляете в нужное действие, вы присоединяете обработчик события к элементу #but – Nic

+0

Thx mate, я новичок в jQuery – Hellbea

+0

@Hellbea вы можете проверить мой отредактированный ответ, это более оптимально. – PacMan

ответ

0

вы крепление keypress события с click внутри, так, чтобы решить эту проблему; вот предложение

первого попытки факторизовать повторяющийся код, так что если есть какое-либо редактирование вы должны будете сделать это только один раз:

function sendReq(data){ 
     $.post('/chat/send/', data, function(response) { 
       var options = ''; 
      $.each(response.data, function() { 
      options += '<p><b>' + this[0] + ':</b> ' + this[1] + '</p>'; 
       }); 
      $('#text').val(''); 
      $('.message-box').html(options); 
      }); 
    } 

так что теперь вы имеете функцию, отправить ваш запрос, теперь вы будете обрабатывать событие, где функция будет уволен, это просто набрав

$('#text').keypress(function(e){ 
     if(e.keyCode == 13){ 
      var data = {id: $(this).attr("name"), text: $('#text').val(), chat_id: $(".message-box").attr("chat-id")} 
      sendReq(); 
     } 
    }); 

и вы делаете то же самое для мыши.

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