jQuery ajax $ .post обновляет страницу при вызове из плагина validate - PullRequest
2 голосов
/ 30 августа 2011

Я не могу понять, что здесь происходит, но каким-то образом моя страница обновляется / перенаправляется, когда я вызываю $.post внутри submitHandler в плагине проверки. Бэкэнд просто возвращает HTTP-код состояния 200.

Вот мой код:

$('form[name=comment]').validate({
    submitHandler: function(form) {
        $('#postComment').attr('disabled', 'disabled');
        $.post('/blog/comments/create/', form.serialize(), function() {
            prependComment(form);
            return false;
        }).error(function() {
            alert('There was an issue when submitting this comment.');
        }).complete(function() {
            $('#postComment').removeAttribute('disabled'); 
        });
        return false;
    }
});

Вот HTML

<form action="/blog/comments/create/" name="comment" method="post">

    <input type="hidden" name="post" value="1"/>
    <ul>
        <li>                    
            <input type="text" name="name" value="Your name" class="required"/>
        </li>
        <li>
            <textarea name="message" rows="10" cols="55" class="required"></textarea>
        </li>
        <li>
            <button type="submit" id='postComment' class="primary">Post comment</button>
        </li>
    </ul>
</form>

1 Ответ

1 голос
/ 30 августа 2011

Часть form.serialize() должна быть $(form).serialize(). Переменная form является элементом DOM, а не объектом jQuery .

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