2011-06-15 31 views
5

Bir formum var. Bu form, POST yoluyla bir iframe gönderir, bu da, talebin işlenmesini talep eder ve sonuca bağlı olarak, ebeveynin içeriğini gönderenin geçerliliğine göre değiştiren bir javascript yürütülür.jQuery param dizgisine ilişkin form gönderimini durdurma

Şimdi, bu yordamı sevmiyorum. Aynı anda birkaç form sunma yeteneğini istiyorum, ama sadece bu bir gizli iframe sahibim. Bu yüzden, her form gönderiminde ayrı bir istek oluşturarak AJAX ile yapmak istiyorum. Bununla birlikte, formum karmaşıktır; dizilere değişkenler ekleyen, tıklatılan görüntülerin ve tıklatılan koordinatların gönderilmesi gereken karmaşık metinler ve bunun gibi karmaşık şeyler içeren onay kutularından oluşur. Bu yüzden her girdinin değerini hesaplamak ve onu bir gönderi parametresine eklemek yerine string (bu arada: dizilerimi bu şekilde nasıl oluşturabileceğimi bilmiyorum), çok fazla gönderme içeriğine sahip olmayı tercih ederim, tüm bu parametrelerle bir posta dizisi olarak kaydedilir ve ardından bu dizeyi AJAX için kullanır POST isteği.

Bu işlevde yapmak istiyorum Yani: peşin

$('#myForm').submit(function(event){ 

    // process the submission, e. g. event.getContent().toPostString(); 

    // create the AJAX request and send it and attach listeners (I know how to do this line ;) 

    return false; // I don't want the form submitted (to the iframe) 

}); 

Teşekkür!

cevap

7

sadece jQuery's ajax methods kullanmak, bir iframe kullanmayın: http://jsfiddle.net/maniator/Y6r8E/
Tip forma şey ve gönderin: Burada

$('#myForm').submit(function(event){ 

      //url   //post data 
    $.post(this.action, $(this).serialize(), function(returnData){ 
      //do something with returnData 
    }) 

    return false; //do not submit form the normal way 

}); 

bir örnektir (aşağıda örnekte post() kullanılır).

+0

Mükemmel! Şaşırtıcı! Vay, sadece ihtiyacım olan şey! – arik

+0

@ arik-bu yüzden sorun yok^_^ – Neal

+0

Bir şey hariç, sadece fark ettim. Görüntüleri gönder düğmeleri olarak kullanıyorsanız, tıklanma konumu (çok kötü olmayacak) değil, tıklanan görüntü (potansiyel gönderim düğmeleri olarak birkaç görüntü kullanılıyorsa) bile aktarılmaz. – arik

1

jQuery'nin serialize() işlevi .ajax() veya .post() aracılığıyla kolayca form gönderimi sağlamak için form verilerini toplar.