Отправьте форму с AJAX и поместите содержимое в DIV после валидатора jQuery - PullRequest
0 голосов
/ 31 декабря 2011

Все, У меня есть следующий код:

$(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. Это не работает, но я не уверен почему. Любые идеи очень приветствуются. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 01 января 2012

Я фактически закончил разделять эти функции, и новый код:

$("#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 голосов
/ 01 января 2012

Вы думаете, что .submit отправит форму? Все, что нужно, - это установить обработчик для создания представления.

Вам все еще нужно будет отправить форму до того, как обратный вызов произойдет.

Кроме того, я не знаком с методом submit_form. Почему бы просто не попробовать его с помощью обычной кнопки отправки формы вместо ссылки

http://www.javascript -coder.com / HTML-форма / HTML-форма-submit.phtml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...