2016-03-19 14 views
0

Bir şablon motoru tarafından çalışma zamanında dinamik olarak oluşturulan birden çok form var. Gönderiminde bir ajax isteği oluşturmak için "on" yöntemini kullandım olayı delege etmek., dinamik olarak oluşturulmuş formun gönderilmesi üzerine, hangi gönderme düğmesinin tıklandığını bul

$("#friendRequestsList").on("submit", "[id^=friendReqResponse-form]", function(){ 
    var form = this; 
    $(form).ajaxSubmit({ 
     url:'URL', 
     type:'post', 
     dataType: 'json', 
     success: function(data) { 
      DO SOMETHING 
     } 

    }); 
    return false; 
}); 

formu gönderme düğmeleri 2. vardır ve ben tıklandığı bunlardan hangisinin algılamak ve ajax isteği bu bilgileri geçmeleri gerekiyor. Bununla birlikte, dinamik olarak oluşturuldukları için formdaki teklif girişlerinin hangisinin tıklandığını bilmek zor bir zaman geçiriyorum. Fikirler?

+0

bir Gönder düğmesini atarsanız ben ('input' ve' çeşitli button' değil, en azından) bir değeri inanmak

data: {submit:input.value}, 

ekleyerek bunu Bu değer, form verilerinin geri kalanı ile birlikte geçirilmelidir. Bununla birlikte, çalıştığınız form düğmelerini ayarlayamazsanız bunun ne kadar yararlı olabileceğinden emin değilim. – Connor

+0

nope, her ikisi de gönderen ve farklı değerler içeren "giriş" dir, ancak formun yalnızca girdi alanı form verisi olarak geçirilir - eğer WAS, form verilerinin geri kalanıyla birlikte geçerse, o zaman bu benim problemimi de çözer . – Alexjjsmith

+1

Özür dilerim, yanılmış olmalıyım. Bu durumda, mümkün ise, tıklama olay işleyicisi yerine forma tıklatma olay işleyicilerini forma tıklatabilirim. Değilse, belki de bir tıklatma etkinliğini tüm forma bağlayarak, tıklanan öğeye [jQuery's event.target'] (https://api.jquery.com/event.target/) olsa da tıklanarak nelerin tıklandığına göre gönderilir. ? – Connor

cevap

0

i şöyle Gönder düğmesini almak başardı:

$("#friendRequestsList").on("click", "[id^=submit1], [id^=submit2]", function(e) { 
    var input = this; 
    var form = $(input).parent(); 

    $(form).ajaxSubmit({ 
     url:'URL', 
     type:'post', 
     dataType: 'json', 
     success: function(data) { 
      DO SOMETHING 
     } 

    }); 
    e.preventDefault() 
}); 

elbette, bu, formumun bir tuşa basma biçiminden bir form gönderiminde tetiklenmeyeceği için girdi alanlarına sahip olsaydı çok işe yaramazdı. Ayrıca, hala giriş kimlik bilgilerini ajax isteğine eklemeniz gerekir.

Ben ajaxSubmit ayarlarına

0

Sana yardım umuyoruz: click olayını kullanarak yerine teslim ait Connors öneri aşağıdaki

$("#friendRequestsList").on("submit", "[id^=friendReqResponse-form]", function(){ 
    var submit1 = $(this).attr('value'); 

    var formData = new FormData(); 
    formData.append('submit1', submit1); 

    $.ajax({ 
     url:'URL', 
     type:'post', 
     data:formData, 
     dataType: 'json', 
     success: function(data) { 
      DO SOMETHING 
     } 

    }); 
    return false; 
}); 
+0

Cevabınız, ama bunun işe yarayacağını düşünmüyorum. submit1, gönder düğmesine tıklanmadığını belirten tanımsız bir değer atanacaktır – Alexjjsmith

İlgili konular