2013-03-30 46 views
1

我构建了一个简单的表单,只要按ENTER键就可以提交。它工作正常,但每当我尝试在其中运行.post时,textarea中的文本会在按Enter而不是提交时中断。jQuery on enter key提交表格

我的意思是通过打破


文本是在textarea的是什么
|打破


这工作得很好

// 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。员额在这里面,没有它失败?

+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"); 
}); 

似乎什么我你通过jQuery的$.post()方法{comment_body:remove_comment}发布的数据comments.php,但你没有使用回调函数在里面。

无论您在参数中传递的回调函数中是否发布comment.php

+0

当我按下提交时,textarea中的行仍然断裂。 –

+0

您可以尝试在此更新的答案中发布'json' – Jai

+0

并且我认为您发送了错误的数据,您应该尝试使用此“{cb:comment_body}”。 – Jai

0

post的语法是:$ .post(URL,data,callback);

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