Определенно, на чистом HTML нет решения для отправки формы с a
тегом link ( ). Стандартный 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>