2011-12-31 23 views
-1

所有, 我有下面的代碼後:提交表單與AJAX和地點的內容在DIV jQuery的驗證

$(document).ready(function() { 
    $("#create_review").validate(); 
    $("#submit_review_link").click(function() { 
     if ($("#create_review").valid()) { 
     $("#create_review").submit(function() { // catch the form's submit event 
      $.ajax({ // create an AJAX call... 
       data: $(this).serialize(), // get the form data 
       type: $(this).attr('method'), // GET or POST 
       url: $(this).attr('action'), // the file to call 
       success: function(response) { // on success.. 
        alert("it is here"); 
        $('#created').html(response); // update the DIV 
       } 
      }); 
      return false; // cancel original event to prevent form submitting 
     }); 
     } 
     return false; 
    }); 
}); 

下面是我實際的HTML表單:

<form action="save_review.php" method="post" name="create_review" id="create_review"> 
    <textarea name="review" id="review" rows="5" class="required"></textarea> 
</form> 
<a class="button-2" href="#" id="submit_review_link" onClick="submit_form()">Submit Review</a> 

我想驗證這一點,然後在我創建的div中顯示結果。它不工作,但我不知道爲什麼。任何想法將不勝感激。提前致謝。

+0

你是什麼意思「它不工作」?警報彈出嗎? – Ivan 2011-12-31 17:11:04

+0

Ctrl-Shift-J是你的朋友。 – ranksrejoined 2011-12-31 17:16:32

+0

@伊萬,這是正確的。警報不會彈出,沒有任何東西進入div。在我的save_review.php文件中,我只是回聲說「它工作」只是爲了查看結果是否會填充div。這也沒有發生。 – user1048676 2011-12-31 17:20:37

回答

0

其實我結束了分裂這些功能和新代碼是:

$("#create_review").validate(); 
     $("#submit_review_link").click(function() { 
      if ($("#create_review").valid()) { 
      submit_form(); 
      } 
      return false; 
     }); 

    function submit_form(){ 
     data_to_send = $("#review_text").val(); 
     recipe_id_to_send = $("#recipe_id").val(); 
     current_reviews = $("#current_reviews").val(); 
      $.ajax({ // create an AJAX call... 
       data: {review_info : data_to_send, recipe_id : recipe_id_to_send}, // get the form data 
       type: "POST", // GET or POST 
       url: "save_review.php", // the file to call 
       success: function(response) { // on success.. 
        update_reviews(); 
        $("#review_text").val(""); 
        $('#review_saved').prepend(response); // update the DIV 
        if(current_reviews==0){ 
         $("#no_reviews").hide(); 
        } 

       } 
      }); 
      return false; // cancel original event to prevent form submitting 
    } 
0

您是否認爲.submit會提交表單?所有這些都是在創建提交時設置一個處理程序。

您仍然需要在回調發生之前提交表單。

此外,我不熟悉「submit_form」方法。爲什麼不只是一個正常的表單提交按鈕,而不是鏈接

http://www.javascript-coder.com/html-form/html-form-submit.phtml

<輸入型試試=「提交」> < /輸入>