发送请求后ajaxform jQuery插件重置表单

时间:2014-01-12 19:58:39

标签: javascript php jquery chat

在我开始之前,我相信这一开始并不是一个公开的。

这是我的问题:

我有一个聊天室php脚本,我使用ajaxForm jQuery插件,以便在不重新加载整个页面的情况下发送新消息。

事实是,发布时间大约需要1-2秒: e.g

封闭:6ms的

发送:1毫秒

等待:1.15秒

接收1毫秒

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

表单在收到时间之后被清除,这意味着我需要大约1.20秒来清除我发送的每条消息......而且聊天似乎有些滞后。

我试图想办法在发送部分之后清除表单,没有回调或其他东西。

4 个答案:

答案 0 :(得分:3)

如果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();

希望这会有所帮助。干杯

答案 1 :(得分:1)

$('#mydiv').ajaxForm(function() {
   //...
    $("#mydiv")[0].reset();
});

答案 2 :(得分:0)

我从未使用ajaxForm,但只需在<form>元素上使用浏览器的reset()函数就足够了(我假设ajaxForm返回一个jQuery实例):

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

如果上述内容引发has no method reset()错误,请尝试以下操作:

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

答案 3 :(得分: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
        }
    });
});

希望这会有所帮助。干杯