Form göndermek için normal bir bağlantı kullanın


130

Bir form göndermek istiyorum. Ancak, gönderme türünde bir giriş düğmesi kullanmanın temel yoluna değil, bir bağlantıya gitmiyorum .

Aşağıdaki resim nedenini göstermektedir. Formu kaydetmek / göndermek için resim bağlantılarını kullanıyorum. Resim bağlantıları için standart css biçimlendirmem olduğundan, girdi gönderme düğmelerini kullanmak istemiyorum.

Bir öğeye onClick = "document.formName.submit ()" uygulamayı denedim ama html yöntemini tercih ederim.

alternatif metin

Herhangi bir fikir?


3
düğmesini kullanın ve resmi görüntülemek için css yapın veya javascript kullanın, javascript olmadan bir form göndermek için basit href yapmanın gerçek bir yolu yoktur.
Anton S


4
Bunu yapma nedeniniz yanlış bir ekonomi gibi görünüyor. Gönder düğmeleri için standart bir css bulmak ve formları kullanılmak üzere tasarlandıkları şekilde kullanmak daha iyidir. Burada açıklanan bir dizi düğme css tekniği vardır: tripwiremagazine.com/2009/06/…
dnagirl

Yanıtlar:


169

İki yol. Ya bir düğme oluşturun ve css ile bir bağlantı gibi görünecek şekilde biçimlendirin ya da bir bağlantı oluşturup kullanın onclick="this.closest('form').submit();return false;".


55
Aaaaaaa ve işte bir düğmeyi bağlantı olarak nasıl biçimlendireceğinizle ilgili bir referans: stackoverflow.com/questions/1367409/…
flipchart

3
bunun form.submit()JavaScript olmadan çalışmayacağını unutmayın
baptx

3
@baptx eski akıllı telefonlar bile javascript'i etkinleştirdi
Mahdi Jazini

2
@MahdiJazini Pek çok kişi JavaScript'i varsayılan olarak devre dışı bırakır, bu da müdahaleci olabilir ve bazı durumlarda performansı etkileyebilir. JavaScript başarısız olursa, tüm web sitesini bozabilir (örneğin, yerel yedek olmadan bir CDN kullanarak ve üçüncü taraf etki alanı engellenir). Bir HTML hatası varsa, yine de web sitesini kullanabilirsiniz. Geliştiriciler bunun yerine aşamalı geliştirme ilkesini izlemelidir.
vaftiz

3
Javascript olmayan kullanıcıları desteklemek istiyorsanız, bu cevapta açıklanan ilk seçeneği uygulayın, bağlantı gibi bir düğmeyi biçimlendirin. Örneğin input[type=submit].link { border: none; background: none; display: inline; color: blue; text-decoration: underline; }ve<input type=submit class="link" />
Jan Sverre

87

Bildiğim kadarıyla bunu bir tür komut dosyası olmadan gerçekten yapamazsınız.

<form id="my_form">
<!-- Your Form -->    
<a href="javascript:{}" onclick="document.getElementById('my_form').submit(); return false;">submit</a>
</form>

Buradan Örnek .


1
ve sevgili ziyaretçiler ... >>> id = "my_form"
yazmayı

Bu en iyi ve net cevap olmalı, teşekkürler!
yehanny

28

Sadece input type="submit"böyle bir stil benim için çalıştı:

.link-button { 
     background: none;
     border: none;
     color: #0066ff;
     text-decoration: underline;
     cursor: pointer; 
}
<input type="submit" class="link-button" />

Chrome, IE 7-9, Firefox'ta test edilmiştir


sadece kayıt için: inputHTML öğesine bir sınıf eklemeden CSS seçicileri kullanarak uygun öğeyi seçmelisiniz .
Erik Kaplun

Yorumunuz tercih edilen yol olsa da, bu her zaman mümkün değildir
Serj Sagan

Neden bu tercih edilen yoldur?
Mark

Yarı yerleşik bir kodlama uygulaması, genellikle daha temiz html bırakıyor ... ama bu çok büyük bir anlaşma değil
Serj Sagan

1
Bu cevap javascript'e bağlı değil ki endişelenecek bir şey daha
Matthew Lock


5

kullanın:

<input type="image" src=".."/>

veya:

<button type="send"><img src=".."/> + any html code</button>

artı biraz CSS


0

Kesinlikle, link ( a) etiketli bir form göndermenin saf HTML ile bir çözümü yoktur . Standart HTML yalnızca düğmeleri veya resimleri kabul eder. Diğer bazı ortakların söylediği gibi, bir düğme kullanarak bir bağlantının görünümünü simüle edebilirsiniz, ancak sanırım sorunun amacı bu değil.

IMHO, önerilen ve kabul edilen çözümün işe yaramadığına inanıyorum.

Bir form üzerinde test ettim ve tarayıcı forma referansı bulamadı.

Bu nedenle, tek bir JavaScript satırı kullanarak this, tıklanmakta olan öğeye başvuran, formun alt düğümü olan ve gönderilmesi gereken nesneyi kullanarak çözmek mümkündür . Yani this.parentNodeformu düğümdür. submit()O formda sadece metodu çağırdıktan sonra . Doğru formu bulmak için tüm belgeden gerekli araştırma gerekmez.

<form action="http://www.greatsolutions.com.br/indexint.htm"                   
   method="get">
    <h3> Enter your name</h3>
    First Name <input type="text"  name="fname"  size="30"><br>
    Last Name <input type="text" name="lname" size="30"><br>
    <a href="#" onclick="this.parentNode.submit();"> Submit here</a>
</form>

Kendi adımla girdiğimi varsayalım:

Doldurulmuş form

Ben kullandım geto sonra teslim yüklü sayfada URL'de doğru parametreleri görmek mümkündür çünkü form yöntemi özelliğinde.

http://www.greatsolutions.com.br/indexint.htm?fname=Paulo&lname=Buchsbaum

Bu çözüm, açık bir şekilde onclickolayı veya benzer bir olayı kabul eden herhangi bir etiket için geçerlidir .

thisdoğrudan kullanılabilen veya bir işleve argüman olarak aktarılabilen eventdeğişkenle birlikte (tüm büyük tarayıcılarda ve IE9'dan itibaren mevcuttur) bağlamı kurtarmak için mükemmel bir seçimdir .

Bu durumda, etkinliği başlatan öğeyi belirten aözelliği kullanarak satırı aşağıdaki satırla değiştirin target.

<a href="#" onclick="event.target.parentNode.submit();"> Submit here</a>

@Nathan, yazı yazma pratiğim pek yok Stackoverflow. Umarım düzeltmelerin tarzımı geliştirmeme yardımcı olur. Benim İngilizcem de iyi değil.
Paulo Buchsbaum

0

OnClick = "document.getElementById ('formID_NOT_NAME') kullanabilirsiniz. SUBMIT ()"

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.