2009-12-15 15 views
10

: Benim sitemdeSafari: Formdaki gönderimi iptal et Enter? sorunun ardından

, iki formlar vardır. Biri giriş için ve bir ana veri için. Ana formda yalnızca bir gönderme düğmem var. Giriş formu, ana form gönderiminde js aracılığıyla gönderilir.

Bu iyi çalışıyor. Fakat Safari'de, girişim giriş formunun içinde iken Enter'a basabilirim. Bu, giriş formunu ana form olmadan gönderecek, dolayısıyla bir hata alıyorum (Bu, bana göndermeyi istediğim jsonun düz bir görüntüsüne yönlendirir).

o "basıldığında enter" eylemi devre dışı bırakmak mümkün mü?

+0

Bu sorunu araştırırken, bu tuhaflık için biraz daha fazla bağlamda tökezledim (RESOLVED WONTFIX durumunu not edin): https://bugs.webkit.org/show_bug.cgi?id=16886 –

cevap

22

Eğer <form onsubmit="return false;"> tarayıcının varsayılan davranışı iptal neden formda veri göndermek için yine JS kullanmak derseniz. Bu şekilde, gönder düğmesine basarsanız veya girişe enter tuşuna basarsanız, gönderilmez. Onsubmit = "false döndür", formun JS formundaki submit() yönteminin çağrılmasına engel olmamalıdır.

+1

Teşekkürler! Şimdi çalışıyor! – Newbie

+1

Çok güzel ve temiz bir cevap. – Mattis

2

Oturum açma formunuz için onsubmit işleyicisini ekleyebilirsiniz. Bu işleyici, formunuzu göndermenizi önleyebilir (ve örneğin imlecinizi formlardaki bir sonraki boş alana taşıyabilirsiniz);

<form onsubmit="do_some_function(); return false;" ></form> 

, submition formu önlemek için onsubmit işleyicisindeki return false için;

İlgili konular