Однозначно, немає рішення з чистим 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>