Кнопка отправки JQuery AJAX иногда не работает - PullRequest
1 голос
/ 13 февраля 2011

Приветствую всех,

Я использую ссылку в качестве кнопки отправки JQuery AJAX, и иногда она срабатывает при нажатии, а иногда нет.Отказ от огня является периодическим.Кажется, что это происходит после отправки формы AJAX, но возвращается с ошибками, которые я отображаю.

Затем, когда я снова нажимаю кнопку / ссылку отправки, иногда ничего не происходит, а иногда все работает нормально.На консоли не отображаются ошибки JavaScript.Вот как выглядит мой код.Буду признателен за ваши мысли.Нужно ли использовать .live ()?И если так, то почему?Я думаю, может быть, я не понимаю, как привязка работает полностью.

Спасибо, -Northk

// make the comment form submit link behave as if it's a submit button.
// this code is inside $(document).ready.  Corresponding HTML looks like:
//      <div class="box round-box darker comment-message-box">
//          <p class="comment-message"></p>
//      </div>    
//
// <a href="#" id="comment-button" class="action-button"><small>Submit</small></a>      
//
$(function() {
    $('#comment-button').click(function(e) {
        e.preventDefault(); // prevent the browser from "jumping" on the page when it comes back from AJAX. 
        $('.comment-message-box').hide(); // clear any leftover errors that may be showing on the form    
            $('#comment_form').submit(); 
    });
});

Извините, вот код AJAX.Я пытался сделать свой вопрос коротким, но, вероятно, не дал достаточного контекста кода:

$(function() {
    $('#comment_form').ajaxForm({
        url: 'http://www.mywebsite.com',
        success: function(data) {
            if (data.match(/<title>Error<\/title>/)) {
                //grab the error message
                var error = $(data).find('ul li:first').text();

                // if they didn't enter any comment, this is the error we'll get back from the server
                if (error == 'The comment field is required')
                {
                    $('.comment-message').replaceWith('<p class="comment-message mtm mbm">Please enter a comment.</p>');
                } 
                // else some other kind of error occurred
                else  
                {
                    $('.comment-message').replaceWith('<p class="comment-message mtm mbm">I&rsquo;m sorry! for some reason the comment form isn&rsquo;t working at this time. Please <a href="/contact">contact me</a> for help.</p>');                      
                }
            }
            else {
                 // else no error, fix up a success message
                $('.comment-message').replaceWith('<p class="comment-message mtm mbm">Thanks for your comment!</p>');
                }
                // display the return message box
                $('.comment-message-box').fadeIn(1000); 
            },
        dataType: 'html'
    });
});
...