2016-10-01 5 views
-2

を実行:jQueryのイベント、私は本当に時間によってコードの平和に苦労してる二回

$('#property_image_uploader').on('submit',function(e) { 
     var formData = new FormData(this); 
     $.ajax({ 
      type:'POST', 
      url: $(this).attr('action'), 
      data:formData, 
      cache:false, 
      contentType: false, 
      processData: false, 
      success:function(data){ 
      $.ajax({ 
       contentType: 'application/x-www-form-urlencoded;charset=UTF-8' 
       , method: 'post' 
       , url: 'property_info_box.php' 
       , data: {id: parseInt(data)} 
       , success: function(page){ 
        $('#property_info_box', parent.document).html(page); 
        return false; } 
       }); 
      }, 
      error: function(data){ console.log(data); } 
     }); 
    }); 

    $("#property_image_chooser").on("change", function(e){ 
     $("#property_image_uploader").submit(); 
    }); 

問題はそのたびに$( '#のproperty_image_chooser')の変化、$( '#のproperty_image_uploader')submitionです2回発射される。私はe.preventDefault()とe.stopImmediatePropagation()をこの2つの関数のどこにでも配置しようとしましたが、この問題は解消されましたが、2番目のajax呼び出しでロードされたページがフリーズし、 ...

+0

私たちは、あなたが何を示唆して@Dez試してみましたやった何が起こっているかを検索して上に行く前に? – Franco

+0

あなたの質問を更新したと思います。だからあなたのコードも更新してください。このような誤解を避けるため。 – Franco

+0

2番目のajaxフリーズの問題は、* return false; * lineが原因です。あなたはそれを必要としません。 – Dez

答えて

0

すべての問題は、サブミット時にe.preventDefault()を追加し、2番目のajax呼び出しで 'return false'を削除することで解決します。最終的なコードは次のようになります。

$('#property_image_uploader').on('submit',function(e) { 
    var formData = new FormData(this); 
    $.ajax({ 
     type:'POST', 
     url: $(this).attr('action'), 
     data:formData, 
     cache:false, 
     contentType: false, 
     processData: false, 
     success:function(data){ 
     $.ajax({ 
      contentType: 'application/x-www-form-urlencoded;charset=UTF-8' 
      , method: 'post' 
      , url: 'property_info_box.php' 
      , data: {id: parseInt(data)} 
      , success: function(page){ 
       $('#property_info_box', parent.document).html(page); } 
      }); 
     }, 
     error: function(data){ console.log(data); } 
    }); 
}); 

$("#property_image_chooser").on("change", function(e){ 
    e.preventDefault(); 
    $("#property_image_uploader").submit(); 
}); 

はありがとうございました...

関連する問題