簡體   English   中英

發送請求后ajaxform jQuery插件重置表格

[英]ajaxform jQuery plugin reset form after sending request

在我開始之前,我相信這並不是一開始的復制。

這是我的問題:

我有一個聊天室php腳本,我使用ajaxForm jQuery插件來發送新消息而無需重新加載整個頁面。

事實是發布時間大約需要1-2秒:例如

封閉:6ms的

發送:1毫秒

等待中:1.15秒

接收1ms

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

接收時間過后,表格將被清除,這意味着清除我發送的每條消息大約需要1.20秒...而且聊天似乎有點滯后。

我試圖找出一種方法來清除發送部分之后的表單,而沒有回調或其他東西。

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

希望這可以幫助。 干杯

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

我從未使用過ajaxForm ,但是僅在<form>元素上使用瀏覽器的reset()函數就足夠了(我假設ajaxForm返回jQuery實例):

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

如果以上has no method reset()拋出一個has no method reset()錯誤,請嘗試以下操作:

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

如果您對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
        }
    });
});

希望這可以幫助。 干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM