Zoque.Forum
»
Ajax ile yüklenen içerikten form submit etmek
|
| JavaScript JavaScript ile ilgili merak ettiklerinizi, sorunlarınızı ve fikirlerinizi bu bölümde paylaşabilirsiniz. |
![]() |
|
|
LinkBack | Seçenekler |
|
|
#1 (permalink) |
|
Üyelik Tarihi: 11.02.2007
Yer: Ankara
Yaş: 24
Mesaj: 33
|
Ajax ile yüklenen içerikten form submit etmek
Merhaba arkadaşlar,
Bir formum var ve bu formun geldiği sayfayı yine ajax ile açıyorum. [ www.gulcemobilya.com.tr adresinde iletişime tıklayınca gelen sayfa] Bu sayfada bir formum var ve ben bu formun kontrolleri ve sonrasında da action'ını jquery'nin post methodu ile yapmaya çalışyorum. Aslına bakılırsa daha önce birkaç kez kullandım bunu ama aradaki fark bu kez ajax ile gelen sayfa içinden post etmek olacak. Bu nedenle de id.leri alamıyor sanırım js. Aynı soruna kodlar üzerinden gidecek olursak... Bu formun olduğu sayfa: HTML Code:
<form method="post" action="JavaScript:;"> <h2>Adınız:</h2> <input type="text" name="strName" id="Name" /> <h2>Firma Adı:</h2> <input type="text" name="strFirm" id="Firm" /> <h2>Telefon:</h2> <input type="text" name="strTel" id="Tel" /> <h2>E-Posta:</h2> <input type="text" name="strEmail" id="Email" /> <h2>Mesajınız</h2> <textarea name="strMessage" id="Message" rows="5" ></textarea> <div align="right" style="margin:5px 0" id="submitButtonContainer"> <input type="hidden" name="strCommand" value="sendForm" id="submitbutton" /> </div> </form> Kod:
$(document).ready(function(){
$("#submitbutton").click(function(){ //Düğmeyi ve diğer field.ları "#id" ile yakaladım.
$(".warning").hide();
var hasError = false;
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var FirmVal = $("#Firm").val();
var TelVal = $("#Tel").val();
var NameVal = $("#Name").val(); //Id ile yakaladık.
if(NameVal == '') {
$("#Name").after('<div class="warning">Lütfen adınızı giriniz!</div>');
hasError = true;
}
var EmailVal = $("#Email").val();
if(EmailVal == '') {
$("#Email").after('<div class="warning">Lütfen geçerli bir e-posta adresi giriniz!</div>');
hasError = true;
} else if(!emailReg.test(EmailVal)) {
$("#Email").after('<div class="warning">Lütfen geçerli bir e-posta adresi giriniz!</div>');
hasError = true;
}
var MessageVal = $("#Message").val();
if(MessageVal == '') {
$("#Message").after('<div class="warning">Lütfen mesaj alanını boş bırakmayınız!</div>');
hasError = true;
}
if(hasError == false) {
$(this).hide();
$("#submitButtonContainer").append('<img src="img/loading.gif" alt="Yükleniyor" id="loading" />');
$.post("action.ASP",
{ strName:NameVal, strFirm: FirmVal, strEmail: EmailVal, strTel: TelVal, strMessage: MessageVal },
function(data){
$("#ContactForm").slideUp("normal", function() {
$("#ContactForm").before('<div class="info">Bilgileriniz yetkililerimize ulaştırıldı. <br /> En kısa sürede size geri dönüş yapılacaktır.</div>');
});
}
);
}
return false;
});
});
Çalışan örnek: www.gulcemobilya.com.tr Formun olduğu CSS'siz sayfa: www.gulcemobilya.com.tr/contact.asp Şimdiden yardımcı olacak herkese teşekkürler |
|
|
|
|
|
#2 (permalink) |
|
Re: Ajax ile yüklenen içerikten form submit etmek
Merhaba,
JavaScript ile ilgili bir sorun yok, malesef sizin hatanız var ![]() Şöyle ki, siz atamaları sayfanın yüklendiği hatta, onLoad da değil jQuery tarafından tanımlanan, "ready" olayı tetiklendiğinde yapıyorsunuz ancak ajax adının da ifade ettiği üzere asenkron bir sistem ve sayfanız yüklendikten bir süre sonra yükleniyor. Sayfanız yüklendikten 1 mili saniye sonra bile yüklense belirtilen idler geçersiz oalcaktır çünkü fonksiyon çağrıldığı sırada beklenen içerik henüz yüklenmemiş olacak. jQuery ile çok fazla alakam yok ama ajax çağrılarına "onLoad" benzeri çağrının başarıyla sonlandığını bildiren bir olay koyduğunu biliyorum. Bu oalyda içerik doldurulduktan sonra belirttiğiniz atamaları yaparsanız sorununuz çözülecektir. |
|
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 11.02.2007
Yer: Ankara
Yaş: 24
Mesaj: 33
|
Re: Ajax ile yüklenen içerikten form submit etmek
AYnen dediğiniz gibiymiş ve hiç aklıma gelmemişti bu tip bir hata; mantığını bilsem de.
Teşekkür ederim. Şimdi hata verdirmeyi başardım ama bu kez de Post edemiyorumi. Nasıl bir hatadır bu? ![]() uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: http://localhost/gulcemobilya_com_tr...=1209934818875 :: anonymous :: line 11" data: no] Line 0 |
|
|
|
|
|
#5 (permalink) |
|
Üyelik Tarihi: 11.02.2007
Yer: Ankara
Yaş: 24
Mesaj: 33
|
Re: Ajax ile yüklenen içerikten form submit etmek
Yine ayn hatayı aldım.
uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: http://www.gulcemobilya.com.tr/js/jq...=1209936356671 :: anonymous :: line 11" data: no] İşin içinden çıkamıyorm bir türlü... |
|
|
|
|
|
#6 (permalink) |
|
Re: Ajax ile yüklenen içerikten form submit etmek
|
|
|
|
|
|
|
#8 (permalink) |
|
Re: Ajax ile yüklenen içerikten form submit etmek
Önemli değil, ne demek
![]() Eğer JavaScript ve ajax uygulamarıyla daha çok haşır neşir olacaksan hata ayıklama için Firefox'un Firebug eklentisini, kod yazmak ve yayınlamak için de Aptana'yı tavsiye ederim. İkisi de ücretsiz ve çok güzel programlar. Firebug'da JavaScript'e kontrol noktası(break-point) ekleyebiliyorsun. Bu esnada yerel ve genel değişkenlerin değerlerini de takip etme şansın var, ben hatanı bu şekilde tespit ettim ![]() |
|
|
|
|
|
|
#9 (permalink) |
|
Üyelik Tarihi: 11.02.2007
Yer: Ankara
Yaş: 24
Mesaj: 33
|
Re: Ajax ile yüklenen içerikten form submit etmek
Firebug'ı ben de yoğun bir şekilde kullanıyorum da dediğiniz özelliği hiç kullanmamıştım. Ben de zaten bahsettiğim hatayı bu şekilde yakaladım ama break point özelliğini iyice bi inceleyeyim. Teşekkürler
|
|
|
|
![]() |
| Etiketler |
| ajax , ajax ile form submit etme , form , javascript , jquery , post , submit |
|
|
Zoque'a hoşgeldiniz!