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.parentNode
formu 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:
Ben kullandım get
o 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 onclick
olayı veya benzer bir olayı kabul eden herhangi bir etiket için geçerlidir .
this
doğrudan kullanılabilen veya bir işleve argüman olarak aktarılabilen event
değ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>