2017-05-19 14 views
0

1つのページに2つのフォームがあります。 1つは画像をアップロードし、もう1つはアップロードの仕様になります。JQuery submit form複数回/

問題 フォームリクエストを複数回送信したAjaxリクエストに問題があります。 [画像をアップロード]をクリックすると、同じ画像が何度かアップロードされます。毎回クリックイベントをキャシュして新しいイベントに追加します。

.unbind()を使用して修正しました。それは動作しますしかし、私がアップロード仕様をクリックすると、それはアップロード画像要求を実行します。だからUnbind()はうまくいきませんでした。

どうすればいいですか。だから正しいアヤックスリクエストは1回だけ送られます。

私の画像をアップロードするためのコードです。

//IMAGE UPLOAD 
    $(document).unbind('submit').bind('submit', "#UploadImage",function() { 

     event.preventDefault(); 

     var customerId = $(this).parent().find('input[name="customerId"]').val(); 
     var image = $(this).parent().find('input[name="image"]').val(); 

     //send ajax request 
     jQuery.ajax({ 
     url: "../data/stock.php?action=stock-image-upload", 
     type: "POST", 
     data: new FormData(this), 
     processData: false, //prevent jQuery from converting your FormData into a string 
     contentType: false, 
     success: function(data, textStatus, jqXHR) { 
     console.log(2); 
      $('.image-viewer-modal').modal('hide'); 
      var filter = "<?php echo $id_stc ?>"; 
      var tab_content_to_change = "#stock-sub-list"; 
      jQuery(tab_content_to_change).load('/tasks/stock/stock-list.php?filter='+filter); 


     }, 
      error: function(jqXHR, textStatus, errorThrown){ 
      //Display error message to user 
      alert("An error occured when saving the data"); 
     } 
    }); 
}); 

ここに仕様がアップロードされています。

//specification UPLOAD 
    $(document).unbind('submit').bind('submit', "#Uploadspecification ",function() { 

     event.preventDefault(); 

     var customerId = $(this).parent().find('input[name="customerId"]').val(); 
     var specification = $(this).parent().find('input[name="specification "]').val(); 

     //send ajax request 
     jQuery.ajax({ 
     url: "../data/stock.php?action=stock-specification -upload", 
     type: "POST", 
     data: new FormData(this), 
     processData: false, //prevent jQuery from converting your FormData into a string 
     contentType: false, 
     success: function(data, textStatus, jqXHR) { 
     console.log(2); 
      $('.image-viewer-modal').modal('hide'); 
      var filter = "<?php echo $id_stc ?>"; 
      var tab_content_to_change = "#stock-sub-list"; 
      jQuery(tab_content_to_change).load('/tasks/stock/stock-list.php?filter='+filter); 


     }, 
      error: function(jqXHR, textStatus, errorThrown){ 
      //Display error message to user 
      alert("An error occured when saving the data"); 
     } 
    }); 
}); 

私はので、私は、アップロードボタンをクリックするたびにイベントを提出をクリアすることができますどのように、右のAJAX要求は、事前に一度だけ

多くの感謝を送っています。

答えて

0

は非同期で試してみてください。 虚偽またはもう一方の端はあなたが一度に私は、それはまだ複数の要求を送信することを試みた

+0

クリックした後、イベントのどれをクリックすることはできません。 –