<İnput type = 'button' /> ve <input type = 'gönder' /> arasındaki fark


223

Aptalca bir soru diye bir şey yoktur, işte başlıyoruz: <input type='button' />ve arasındaki fark nedir <input type='submit' />?


2
HTML <düğmesi> öğesi kendi başına bir form göndermiyor, dostum ...
Hexagon Theory

6
Aslında, bazı tarayıcılarda yapar. Bir formun olması, bir gönder düğmesi olmadan, bunun yerine bir <düğmesi>, ona gönderme işlevselliği uygulayacaktır. Firefox bu davranışa sahiptir.
jishi

W3C spesifikasyonunu okurken, bu aslında varsayılan davranıştır, çünkü düğmeler varsayılan olarak "gönder" olan bir tip özniteliğine sahiptir.
jishi


37
Ben aynı soruyu vardı ve bu kesinlikle aptalca bir soru değil, özellikle aptal asp.net kontrolleri bu bok tükürmek çünkü çok gün düzenli html kullanmıyoruz tüm yaşamınız boyunca bir asp.net web formları geliştiricisi olsaydı bizim için ... bu yüzden MVC'ye taşınırken ve basit form öğelerinin nasıl yeniden kodlanacağını anlamak için anaokuluna geri dönmek zorunda kaldığımızda aptal olmaya başlıyoruz. :)
PositiveGuy

Yanıtlar:


235

<input type="button" />düğmeleri bir form göndermez - varsayılan olarak hiçbir şey yapmazlar. Genellikle bir AJAX uygulamasının parçası olarak JavaScript ile birlikte kullanılırlar.

<input type="submit"> JavaScript ile aksi belirtilmedikçe, düğmeler kullanıcı üzerlerine tıkladığında içinde bulundukları formu gönderir.


42
Ayrıca tarayıcılar, bir formdaki "Enter" tuşunu yakalayabilir ve bir gönderme düğmesi varsa formu otomatik olarak gönderebilir, ancak aksi halde gönderemez.
Bay Parlak ve Yeni 宇 宇

2
Ayrıca, tıklandığında bir form gönderimini tetiklemek için kullanılabilen bir type = "image" varsa bunu yaparlar.
jishi

5
Bay Parlak ve Yeni: Formlar herhangi bir düğme olmadan enter tuşu ile gönderilebilir. Örneğin, bir metin girişine odaklanmak yeterlidir.
Lasar

3
BUTTON öğelerini kullanabilirsiniz, ancak (sürpriz sürpriz) Herkesin Favori Tarayıcısını (IE) kullanırken onlarla ilgili birkaç sorun vardır. Gerçi bilmeye değer.

4
Bu açıkçası son derece eski ama düğme türlerini kullanarak büyük bir düşüş olduğunu hissediyorum gibi 2 sent vermek ihtiyacını hissediyorum ... form onsubmit olay potansiyel bakım kabuslara yol açan, javascript başvuruları ateş değil.
mothmonsterman

20

Bir 'düğme' sadece Javascript kullanarak ek işlevsellik ekleyebileceğiniz bir düğmedir. 'Gönderme' giriş türü, yerleştirildiği formu gönderme varsayılan işlevine sahiptir (yine de, Javascript kullanarak ek işlevler ekleyebilirsiniz).


7

Düğme kendi başına form göndermeyecektir.Javascript kullanarak bazı işlemleri gerçekleştirmek için kullanılan basit bir düğmedir, Gönder ise kullanıcı gönder düğmesini her tıklattığında varsayılan olarak formu gönderen bir tür düğmedir.


3

IE 8 aslında gönder veya düğmesiyle karşılaştığı ilk düğmeyi kullanır. Girdi türünü yaparak hangisinin isteneceğini kolayca belirtmek yerine = sayfadaki siparişi vermek gerçekten önemlidir.


3

Ayrıca, "form" adlı adlandırılmış bir girişin, diğer formun adlandırılmış alanlarıyla birlikte gönderileceği, ancak adlandırılmış bir girdi türü = "düğme" olmayacağı da belirtilmelidir.

Diğer bir deyişle, aşağıdaki örnekte, adlandırılan girdi name=button1 WILL'T gönderilirken adlandırılmış girdi name=submit1 WILL'T gönderilecektir.

Örnek HTML formu (index.html):

<form action="checkout.php" method="POST">

  <!-- this won't get submitted despite being named -->
  <input type="button" name="button1" value="a button">

  <!-- this one does; so the input's TYPE is important! -->
  <input type="submit" name="submit1" value="a submit button">

</form>

Yukarıdaki formun eylemini işleyen PHP betiği (checkout.php):

<?php var_dump($_POST); ?>

Yerel makinenizde yukarıdakileri test ederek / tmp / test / adlı bir klasörde iki dosyayı oluşturarak yerleşik PHP web sunucusunu kabuktan çalıştırarak test edin:

php -S localhost:3000 -t /tmp/test/

Tarayıcınızı http: // localhost: 3000 adresinden açın ve kendiniz görün.

Biri neden adlandırılmış bir düğme göndermemiz gerektiğini merak ederdi? Arka uç komut dosyasına bağlıdır. Örneğin, WooCommerce WordPress eklentisi, Place Orderadlandırılan düğme de gönderilmediği sürece yayınlanan bir Checkout sayfasını işlemez . Türünü gönder düğmesinden değiştirirseniz, bu düğme gönderilmez ve Checkout formu hiçbir zaman işleme alınmaz.

Bu muhtemelen küçük bir detay ama biliyorsunuz, şeytan ayrıntılarda.


Bu spesifikasyona uygun mu yoksa tarayıcıya bağlı mı?
Magnus Lind Oxlund

0

<input type="button">sadece form dahilinde değil, herhangi bir yerde de kullanılabilir ve eğer bir formda ise form göndermezler. Çok daha uygun Javascript.

<input type="submit">yalnızca formlarda kullanılmalıdır ve belirtilen URL'ye bir istek (GET veya POST) gönderirler. Onlar gerektiğini değil herhangi bir HTML yerine koymak.


0

W3C, Düğme elemanı ile ilgili spesifikasyonda açıklığa kavuşturur

Düğme, varsayılan davranışı olmayan tüm Düğmeler için genel bir sınıf olarak görülebilir.

W3C


0

type='Submit'BACK-END (PHP, .NET vb.) üzerindeki değerleri iletmek ve almak için ayarlanmıştır. type='button'normal düğme davranışını yansıtacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.