2013-03-30 3 views
1

Я построил простую форму, которая отправляется всякий раз, когда вы нажимаете ENTER. Он работает нормально, но всякий раз, когда я пытался запустить .post внутри него, текст в текстовой области прерывается, когда я нажимаю клавишу ввода вместо отправки.jQuery on enter key submit form

Что я имею в виду, разбив


текст в текстовое поле является
| нарушение


Это прекрасно работает

// Submit comment on ENTER key pressed 
    $("textarea[name=comment_body]").keypress(function(event) { 
     if (event.which == 13) { 

      alert(comment_body); 
     } 
    }); 

Это не

// Submit comment on ENTER key pressed 
    $("textarea[name=comment_body]").keypress(function(event) { 
     if (event.which == 13) {   
      var comment_body = $(this).val();  
      $.post("comments.php", { 
       comment_body: comment_body 
      } 
      alert(comment_body); 
     } 
    }); 

Как я могу использовать JQuery .post внутри этого без него неудачу?

+0

Вы забыли 'event.preventDefault()', и вы, вероятно, имел в виду 'comment_body' вместо' remove_comment' –

+0

Спасибо, я не видел, и я был 'event.preventDefault()' там, и все это было беспорядочно. –

+1

У вас просто синтаксическая ошибка, вам не хватает скобки ')' в конце вызова функции $ .post'. – plalx

ответ

1

Вы должны сделать это таким образом:

$("textarea[name=comment_body]").keypress(function(event) { 
    if (event.which == 13) {   
     var comment_body = $(this).val();  
     $.post("comments.php", {cb: comment_body}, function(data){ 
      alert(data.cb); 
     }, "json"); 
}); 

Что мне кажется вы размещение данных {comment_body:remove_comment} в comments.php через $.post() метода JQuery, но вы не использовали функцию обратного вызова в нем.

Независимо от того, что вы публикуете в comment.php, который используется в параметре data, переданном в функции обратного вызова.

+0

Линия в текстовом поле все еще ломается, когда я нажимаю кнопку submit. –

+0

Вы можете попробовать с 'json', как опубликовано в этом обновленном ответе – Jai

+0

И я думаю, что вы отправляете неверные данные, которые вы должны попробовать с помощью этого' {cb: comment_body} '. – Jai

0

Синтаксис сообщения: $ .post (URL, данные, обратный вызов);

$.post("comments.php", 
    { 
    comment_body: remove_comment 
    }, 
    function(result){ 
     alert(result.comment_body); 
});