Определенно, не существует решения с использованием чистого HTML для отправки формы с тегом ссылки (a
). Стандартный HTML принимает только кнопки или изображения. Как говорили некоторые другие соавторы, можно смоделировать появление ссылки, используя кнопку, но я думаю, что это не цель вопроса.
ИМХО, я считаю, что предложенное и принятое решение не работает.
Я проверил его в форме, и браузер не нашел ссылку на форму.
Таким образом, можно решить эту проблему с помощью одной строки JavaScript, используя объект this
, который ссылается на элемент, по которому щелкают, который является дочерним узлом формы, который необходимо отправить. Итак, 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
в атрибуте метода формы, потому что можно увидеть правильные параметры в 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>