Chắc chắn, không có giải pháp nào với HTML thuần túy để gửi biểu mẫu bằng thẻ link ( a
). HTML tiêu chuẩn chỉ chấp nhận các nút hoặc hình ảnh. Như một số cộng tác viên khác đã nói, người ta có thể mô phỏng sự xuất hiện của một liên kết bằng một nút, nhưng tôi đoán đó không phải là mục đích của câu hỏi.
IMHO, tôi tin rằng giải pháp được đề xuất và chấp nhận không hoạt động.
Tôi đã thử nó trên một biểu mẫu và trình duyệt không tìm thấy tài liệu tham khảo cho biểu mẫu.
Vì vậy, có thể giải quyết nó bằng một dòng JavaScript duy nhất, sử dụng this
đối tượng, tham chiếu đến phần tử được nhấp, là nút con của biểu mẫu, cần phải được gửi. Vậy this.parentNode
là nút hình thức. Sau đó chỉ là submit()
phương thức gọi theo hình thức đó. Không có nghiên cứu cần thiết từ toàn bộ tài liệu để tìm đúng mẫu.
<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>
Giả sử tôi nhập với tên của chính mình:
Tôi đã sử dụng get
thuộc tính phương thức biểu mẫu vì có thể thấy các tham số phù hợp trong URL tại trang được tải sau khi gửi.
http://www.greatsolutions.com.br/indexint.htm?fname=Paulo&lname=Buchsbaum
Giải pháp này rõ ràng áp dụng cho bất kỳ thẻ nào chấp nhận onclick
sự kiện hoặc một số sự kiện tương tự.
this
là một lựa chọn tuyệt vời để khôi phục bối cảnh cùng với event
biến (có sẵn trong tất cả các trình duyệt chính và IE9 trở đi) có thể được sử dụng trực tiếp hoặc chuyển qua làm đối số cho hàm.
Trong trường hợp này, thay thế dòng bằng a
thẻ bằng dòng bên dưới, sử dụng thuộc tính target
, cho biết phần tử đã bắt đầu sự kiện.
<a href="#" onclick="event.target.parentNode.submit();"> Submit here</a>