2014-01-12 3 views
1

Прежде чем я начну, я считаю, что это не публикация вначале.ajaxform jQuery плагин сбросить форму после отправки запроса

Вот моя проблема:

У меня есть сценарий Chatroom PHP, что я использую ajaxForm JQuery плагин для отправки новых сообщений без перезагрузки всей страницы.

Дело в том, что проводка занимает около 1-2 секунд с временем: например

Blocking: 6ms

Отправка: 1мс

Ожидание: 1,15 сек

ПОЛУЧАТЬ 1мс

$('#myform').ajaxForm(function() { 
    //clear form after this 
    $('#myform').clearForm(); 
}); 

Форма очищается после te recieving time, то есть требуется около 1.20 секунд, чтобы очистить каждое сообщение, которое я отправляю ... и кажется, что чат немного отстает.

Я пытаюсь выяснить способ очистки формы после отправки, без обратного вызова или чего-то еще.

+0

Является ли '# mydiv' div, который содержит форму? – BenM

+0

На самом деле это название формы извините, моя ошибка – user3127632

+0

ОК, поэтому у формы есть идентификатор '# mydiv'? – BenM

ответ

1

Если ajaxForm работает нормально, вы можете сделать:

$('#myform').ajaxForm({ 
    beforeSubmit: function() { 
     $('#myform').clearForm(); //Call the reset before the ajax call starts 
    }, 
    success: function(data){ 
     //Your normal callback here 
    } 
}); 

(Если $('#myform').clearForm() не работаете использовать $('#myform')[0].reset();)

Надеется, что это помогает. Cheers

+0

это сработало наконец! Большое спасибо!!! – user3127632

+0

Рад, что это вам помогло. Cheers, из Ла-Пас, Боливия –

0

Я никогда не использовал ajaxForm, но только с помощью reset() функции браузера на <form> элемента должно быть достаточно (я предполагаю, что ajaxForm возвращает экземпляр Jquery):

$('#myform').ajaxForm(function() { 
    this.reset(); 
}); 

Если выше бросает has no method reset() ошибка, попробуйте это:

$('#myform').ajaxForm(function() { 
    $('#myform')[0].reset(); 
}); 
0

Если у вас есть проблемы с ajaxForm. Вы можете избежать ajaxForm, а именно:

$(".ajaxform").submit(function(event){ 
    var $form = $(this); 
    event.preventDefault(); 
    $form.get(0).reset(); //Call the js reset method before ajax starts 
    $.ajax({ 
     url: $form.attr("action"), 
     type: $form.attr("method"), 
     data: $form.serialize(), 
     success: function(data){ 
      //your code when response arrived here 
     } 
    }); 
}); 

Надеюсь, что это поможет. Приветствия

Смежные вопросы