แน่นอนว่าไม่มีวิธีแก้ปัญหาด้วย HTML ที่บริสุทธิ์ในการส่งแบบฟอร์มที่มีa
แท็กlink ( ) HTML มาตรฐานยอมรับเฉพาะปุ่มหรือรูปภาพ ดังที่ผู้ทำงานร่วมกันคนอื่น ๆ กล่าวไว้เราสามารถจำลองลักษณะที่ปรากฏของลิงก์ได้โดยใช้ปุ่ม แต่ฉันเดาว่านั่นไม่ใช่จุดประสงค์ของคำถาม
IMHO ฉันเชื่อว่าโซลูชันที่เสนอและได้รับการยอมรับไม่ได้ผล
ฉันได้ทดสอบในแบบฟอร์มและเบราว์เซอร์ไม่พบข้อมูลอ้างอิงของแบบฟอร์ม
ดังนั้นจึงเป็นไปได้ที่จะแก้ปัญหาโดยใช้ JavaScript บรรทัดเดียวโดยใช้this
object ซึ่งอ้างอิงถึงองค์ประกอบที่คลิกซึ่งเป็นโหนดลูกของฟอร์มที่ต้องส่ง ดังนั้นthis.parentNode
เป็นโหนดแบบฟอร์ม หลังจากนั้นก็เรียกsubmit()
วิธีการในรูปแบบนั้น ไม่จำเป็นต้องค้นคว้าจากเอกสารทั้งหมดเพื่อค้นหาแบบฟอร์มที่เหมาะสม
<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>
สมมติว่าฉันป้อนด้วยชื่อของฉันเอง:
ฉันใช้get
ในแอตทริบิวต์ form method เนื่องจากสามารถดูพารามิเตอร์ที่ถูกต้องใน URL ที่หน้าที่โหลดหลังจากส่ง
http://www.greatsolutions.com.br/indexint.htm?fname=Paulo&lname=Buchsbaum
เห็นได้ชัดว่าโซลูชันนี้ใช้กับแท็กใด ๆ ที่ยอมรับonclick
เหตุการณ์หรือเหตุการณ์ที่คล้ายกัน
this
เป็นตัวเลือกที่ยอดเยี่ยมในการกู้คืนบริบทพร้อมกับevent
ตัวแปร (มีให้ใช้งานในเบราว์เซอร์หลักทั้งหมดและ IE9 เป็นต้นไป) ที่สามารถใช้โดยตรงหรือส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน
ในกรณีนี้ให้แทนที่บรรทัดด้วยa
แท็กตามบรรทัดด้านล่างโดยใช้คุณสมบัติtarget
ที่ระบุองค์ประกอบที่เริ่มต้นเหตุการณ์
<a href="#" onclick="event.target.parentNode.submit();"> Submit here</a>