JQuery表单提交功能不起作用

时间:2014-07-29 08:37:04

标签: forms submit form-submit

我对表单的jquery函数提交有问题:

$(document).ready(function () {
    $('#message').keydown(function(e) {
      if(e.which == 13 && !e.shiftKey) {
         $('#edit_message_11').submit(function() {
            alert("HELLO2");            
         });            
         return false;
      }
    }); 
}); 


<form id="edit_message_11" class="edit_message" method="post" action="/message/11" accept-charset="UTF-8">
<textarea id="message" class="form-control edit_message_form" name="message">
Hello
</textarea>

http://jsfiddle.net/978QC/

当我为表单执行以下操作时: $(&#39;#edit_message_11&#39;)。submit(function(){...}); 它不会触发提交。

但是,如果我 $(&#39;#edit_message_11&#39;)。submit(); ,它会触发提交。

我之所以需要 $(&#39;#edit_message_11&#39;)。submit(function(){...}); 是因为我想做ajax提交。

任何人都有线索?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不相信它会按照您尝试的方式运作。当它在提交功能中时,警报将永远不会触发,直到它从POST返回响应。这意味着您需要表单处理脚本的响应。

你的AJAX调用不需要在提交函数中,它只需要在事件中。

$(document).ready(function () {
    $('#selfie_message').keydown(function(e) {
      if(e.which == 13 && !e.shiftKey) {
         $('#edit_selfie_11').submit();           

         $.ajax({
         type: "POST",
         url: "/selfies/11",
         data: $("#edit_selfie_11").serialize()
         });
       }
    }); 
});

如果你需要在成功时取得成功,你就会这样做。

$(document).ready(function () {
    $('#selfie_message').keydown(function(e) {
      if(e.which == 13 && !e.shiftKey) {
         $('#edit_selfie_11').submit();           

         $.ajax({
         type: "POST",
         url: "/selfies/11",
         data: $("#edit_selfie_11").serialize(),
         success: function(response){
         //your response code here//
         }
         });
       }
    }); 
});