[英]Jquery event executing twice
我真的很努力在幾個小時的代碼和平:
$('#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') 提交都會被觸發兩次。 我試圖將 e.preventDefault() 和 e.stopImmediatePropagation() 放在這兩個函數內的任何地方,這個問題就消失了,但是,第二個 ajax 調用加載的頁面凍結了,無法再觸發任何按鈕...
感謝所有問題,通過在提交時添加 e.preventDefault() 並在第二次 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();
});
非常感謝大家...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.