Form için birden fazla gönderim. Obbluvach veya dzherelo podіi Kіlka'yı bir formun ortasında gönderir

Gönderme yöntemine Wikklik() Formu Eşit değil düzenleme düğmesine basın. Bu yöntemle üç eylemin aşırı sigortasının yalnızca üçte biri belirlenecektir - Haraçların iletimi sunucuya. Koleksiyoncu wiki'sini oluşturmaktan suçlu olmayanlar tıklamada Oldukça anlaşılır bir şekilde gönder düğmeleri - aynı zamanda gönder düğmesini atlayarak veri göndermemiz de teşvik edilir (ki bu, konuşma noktasında hiç gerekli olabilir veya olmayabilir). Ale ve alt simgeForma gönder arama- bu zenginler ve güvensizler için. Ne kadar mantıklı olduğuna (ve bu davranışın yöntemin davranışından neden farklı olduğuna) karar vermeyeceğiz. Sıfırla(), Böl. Aşağıda), ancak ön kısma yöntemi çağıran bir mesaj yerleştirerek bu etkiyi basitçe göstermektedir. göndermek():

wikiCati yöntemi göndermek() düzgün

5.8. submit() yöntemi onSubmit göndericisini çağırmaz

Verilerin kendisi, önce bir JavaScript komut dosyası tarafından kontrol edilmeden sunucuya gönderilebilir. WikiCity Tarayıcısı Gönderim'de nasıl çalışır? Bunun için ortadaki bu noktaya kadar gitmek mümkün: document.f.onsubmit(). Aşağıdaki yöntemin aktarılması yasaktır göndermek() İlk önce değil, yalnızca onSubmit'te herhangi bir değere dönmeden veya true'ya dönmeden, başka bir deyişle false'a dönmeden çağırmaktan suçludur. Gerisini çıkarabiliriz:

Wikilicati göndermek()İlk kontrol ile Gönder

5.9. Primus viklik onSubmit, göndermeden önce()

Başlamanın başka bir yolu veri gönderme gönder düğmesini atlayan formlar (dürüst olmak gerekirse formda olmayabilir). Odağın herhangi bir metin alanında olup olmadığı formunu doldurun ve Enter tuşuna basın, ardından (çoğu tarayıcıda) Formu gönder seçeneğine tıklamanız istenecek ve Haraçların iletimi sunucuya.

Metni girin ve Enter tuşuna basın:

5.10. Enter tuşuna basarak form verilerini gönderme

Bu yöntem diğer yönteme göre daha mantıklı çalışır. göndermek(), Sunucuya gönderilen veriler onSubmit tarafından önceden doğrulanmaya tabi olmadığından.

yeniden başlatma tuşu

indirim düğmesi (Sıfırla) Yan büyütüldüğünde çalışmadığından tüm form alanlarını ilk konuma döndürmenizi sağlar. At düğmesine basmak sizi bir sonraki tarayıcı eylemleri dizisine götürecektir:

1. fikir koleksiyonunun wiki'si tıklamada bu butonda;

2. Formun Sıfırla düğmesine tıklayın;

3. Tüm form alanları için güncellenmiş değerler.

Tıklama yöntemine Wikk() Atma düğmesinde, aynı üç eylemi gerçekleştirmek için düğmeye eşit derecede sert basın:

wikiCati yöntemi tıklamak() indirim düğmeleri

5.11. İndirim düğmesinin click() yöntemine Wikk

Є formu bırakmanın yolları koçanı değirmeni Atma düğmesini atlayarak (bu noktaya kadar formda olabilir veya olmayabilir). Her şeyden önce bu kadar sıfırlama yöntemine viklik() Formda. Alternatif olarak, odak formun herhangi bir alanında veya düğmesindeyse Esc tuşuna basabilirsiniz. popo:

Metni değiştirin ve ardından Esc (veya gönder) tuşuna basın.

wikiCati yöntemi Sıfırla() düzgün

5.12. Esc tuşuna basarak formu bırakın

Bunu sadece formu sıfırlayarak değil aynı zamanda onReset form seçeneğine tıklayarak iki farklı şekilde nasıl yapabilirsiniz? Bu şekilde yöntem Sıfırla() Daha mantıklı ve yeniden eğitilmiş, daha düşük göndermek().

grafik düğmesi

grafik düğmesi- Bu farklı türde bir düzenleme düğmesidir. Mesele şu ki, "coristuvach" yazan düğme yerine tıklayabileceğiniz bir resim görebilirsiniz:

Ayrıca eğer koristuvach tıklamalar Grafik butonu ile sadece form alanlarına girilen veriler değil, görselin sol üst köşesinde bulunan fare göstergesinin koordinatları da sunucuya gönderilir. Maalesef bir JavaScript programında bu koordinatlara gitmek mümkün değildir. Bu koordinatlarla çalışmanız gerekiyorsa grafik düğmesi yerine ek bir konteynerin arkasında aktif bir harita oluşturmanız önerilir. .

Grafik düğmelerinin bir dizi işlevi vardır. Mesela hem buton hem görsel olarak, document.f koleksiyonundaki gibi her gün kokuyorum. elementler, Yani document.images koleksiyonunda (IE 7, Mozilla Firefox). Sonuç olarak koku, form elemanlarının toplamına dahil edilmemektedir (belge.f. uzunluk), Hiçbir şekilde belgenin görüntüsü (document.images.jpg) değil. uzunluk).

Böyle bir tuşa nasıl kızılabilir? Bu, örneğin ID niteliğini ayarlayarak yapılabilir:

Ve sonra programa şunu yazdık: var butonu = belge. getElementById("D1"). Bundan sonra bu düğmenin yetkililerine, örneğin knopka.src'ye ve ayrıca knopka yöntemine dönebiliriz. tıklamak(). Saldırgan popo ne olduğunu gösteriyor tıklama yöntemi tıklama() Grafiksel “majör” butonu aynı butona basmaya eşittir, böylece arayanlar sırayla tıklanır tıklamada düğmeler, onSubmitforms ve verileri sunucuya iletir (fare imlecinin koordinatlarında başka neler iletilir?):

wikiCati yöntemi tıklamak() grafik düğmesi

5.13. Grafik düğmesindeki click() yöntemini tıklayın

Bahsettiğimiz konuya bağlı olarak grafik düğmelerin parçaları nadiren kullanılıyor.

"onSubmit"ten önce standart fonksiyon addHandler / addEvent ( Temel işlevler) İşlev toplayıcıyla "İlişkili".
Yani girişe tıklandıktan sonra form gönderiminin aktif olduğu eksende sampler fonksiyonuna tıklanır,
Form.submit() yoluyla yapılıyorsa, işe yaramaz.
Neden? Bunu nasıl düzeltebilirim?

Yol boyunca yürüyorsunuz, sonra bum, “kırmızı ışıkta” (Gönderimde), ama geliyor! Pekala, onu doğal bir şekilde alırsınız - onu galmin üzerine kabartırsınız (form.submit ()), daha ileri gidersiniz ve sonra oops, bobby atlar, Galyanın içinden tekrar geçersiniz, ancak kırmızı ışık görünmez. Neden?
Nasıl düzeltilir? Tarayıcının nasıl çalıştığını düşünün; istediğiniz şekilde değil, istediğiniz şekilde çalışır. onSubmit - form, form.submit () - yalnızca tarayıcının kendisi tarafından incelenen ve gerektiğinde program tarafından kullanılabilen düşük düzeyli bir kaynak. Bu fikri neden başlatayım ki? Yani kapanmaktan çok uzak değil. Sağdaki biri bunu düşünecek, diğeri ölmek üzere. Fikir / düşünce / fikir ve yöntem örnekleyici / pedal / enstrüman - farklı kelimeler. Yöntem üzerine kitap asmaya gerek yok, burası bir deniz feneri. En basit şekilde, form.submit() öğesine tıklamadan önce gönderen işlevine tıklayın.

Ve satın almadan önce.. Özellik belgelenmiştir. MSDN'si:

FORM.gönder()
Gönderim yöntemi, gönderim üzerine olay işleyicisini çağırmaz. Gönderilen olay işleyicisini doğrudan arayın. Microsoft'u kullanırken İnternet Explorer 5.5 ve üzeri sürümlerde, fireEvent yöntemini sEvent parametresindeki onsubmit değeriyle çağırabilirsiniz.

Koristuvach girişe basarsa şimdi kshtalt'a gidin

If (form.onSubmit()) form.submit();

Tekrar çalış.
form.submit(), form.onSubmit() öğesini tıklatırsa özyineleme elde edersiniz.
Bunu düzeltmek için, olayları başlatmanıza izin veren "standart addHandler / addEvent işlevinin" genişletilmiş bir sürümünü kullanmanız gerekir. IE'de bu kesinlikle mümkün ve hiçbir şey olmadan - fireEvent'e bakıyoruz. FF ile benzer veya daha karmaşık bir şey yapmak da mümkündür.

Avlu Roman [dosya], Daha evrensel olarak - bunun gibi:
if (form.onsubmit()!=false) form.submit();
Çünkü, her şeyden önce, JavaScript büyük/küçük harfe duyarlıdır (form.onSubmit yazamazsınız) ve aksi takdirde, sunucuya veri göndermek yalnızca onsubmit () true olarak ayarlandığında değil, aynı zamanda geri dönmediğinde de gerekli değildir. herhangi bir şey (örneğin, obobnik onsubmit varto just alarm'da olduğu gibi ve koristuvach bu obobnik'te herhangi bir eylem gerçekleştirmeden başladı).

On üçler may [dosya], Tabii ki kırmızı ışık, pedal ve bobby ile uyum çok güzel! :) Maalesef bu olayı açıklamıyorum. Çünkü eşit dünyada çok az örnek ve yöntem vardır, ancak bunlardan kaçınılamaz. Beslenmeye olan odağımızı kaybettiğimizden daha net ifade edeyim:

Click() hipergüç yöntemi - tıklamayı çekin onClick toplayıcı gönderdiğimiz şey bu
- formun BE düğmesinin click () yöntemi - düğmenin onClick'inin tıklamasını çekin
- form için reset() yöntemi - formun onReset wiklik'ini takip edin
- Formdaki ALE yöntemi submit() - onSubmit toplayıcının wiklik'ini forma SÜRÜKLEMEYİN!

Bu kadar farklı şekillerde çalışmanın (dil veya tarayıcı geliştiricileri için) ne gibi nedenleri olabilir?

Form gönderme aracını sunucuya yükler veya bu işlemi başlatır. Yöntemin üç çeşidi vardır:

işleyici(eventObject)- örnekleyici kutusuna yüklenecek işlev. Tıkladığınızda aşağıdaki nesne seçilecektir olayObject .

işleyici(eventObject)- div. Daha
olayVerileri- koleksiyona aktarılan ek veriler. Suçlu, şu biçimdeki nesne tarafından temsil edilecektir: (fName1: değer1, fName2: değer2, ...).

Unbind() yöntemini kullanarak ekleme listesini alabilirsiniz.

Diğer yöntemlerin analogları da dahil olmak üzere ikame yönteminin üç çeşidinin tümü (böl. Daha Fazla), dolayısıyla ikame göndermenin () tüm ayrıntıları bu yöntemlerin açıklamalarında bulunabilir.

Gönder düğmesi, form sunucuya gönderilmeden hemen önce istenir ve form gönderimi, eventObject.preventDefault() yöntemi çağrılarak veya yalnızca false değeri döndürülerek formda başlatılabilir.

IE'de yönetici için gönder düğmesi, diğer istemlerle karşılaştırıldığında "hiyerarşiyi birleştirme" gücüne sahip değildir. Ancak jQuery-1.4'ten itibaren bu eksiklik giderildi ve hiyerarşide form öğesinin üzerinde yer alan öğelere kurulu gönderim işleyicilerine, verilerin sunucuya gönderilmeyeceği konusunda bildirimde bulunulacak.

popo

// foo tanımlayıcısına sahip öğe için gönderim alt bölümünü kurun, // bundan sonra sunucuya veri gönderilmesini engelliyoruz$("#Foo").submit(function()(alert( "Form foo sunucuya gönderildi."); yanlış döndür; )); // foo elementinde gönderimi çağır$("#foo").submit(); // gönderim altına başka bir örnekleyici ekleyin, bu sefer öğeler için // blok sınıfıyla. Koleksiyona ek veriler gönderildi$(".Block").submit((a: 12, b: "abc")), function (eventObject) (var externalData = "a =" + eventObject.data .a + ", b =" + eventObject.data .b; uyarı ( "Form foo sunucuya gönderildi."+ "Bu veri aktarımının kitabında:"+ HariciVeriler); ));

Gönder () - form gönderme formunu sunucuya yükler veya bu işlemi başlatır.

Yöntemin üç çeşidi vardır.

Gönder (işleyici)

  • olayVerileri- operatöre iletilmek üzere verilerin saklanması amacı. Ücretler şu formatta sunulur (fName1: değer1, fName2: değer2, ...);
  • idareci- örnekleyici kutusuna yüklenecek işlev.

Göndermek()

Gönder düğmesi seçilen sayfa öğelerine tıklar.

İlk iki seçenekte yöntem analog.on ("gönder", işleyici) ve üçüncü seçenekte ise analog.trigger ("gönder") şeklindedir.

Gönder düğmesi, form sunucuya gönderilmeden hemen önce istenir ve form gönderimi, eventObject.preventDefault() yöntemi çağrılarak veya yalnızca false değeri döndürülerek formda başlatılabilir. Gönderme işlevi yalnızca form öğesine bağlanabilir.

Formlar yönlendirilebilir veya bariz bir baskı altında olabilir. , , veya