Вместо кнопки отправки у меня есть ссылка:
<form>
<a href="#"> submit </a>
</form>
Могу ли я заставить его отправить форму при нажатии?
Вместо кнопки отправки у меня есть ссылка:
<form>
<a href="#"> submit </a>
</form>
Могу ли я заставить его отправить форму при нажатии?
Лучший способ - вставить соответствующий тег ввода:
<input type="submit" value="submit" />
<form id="form-id">
<button id="your-id">submit</button>
</form>
var form = document.getElementById("form-id");
document.getElementById("your-id").addEventListener("click", function () {
form.submit();
});
Включите последний код JavaScript с помощью события DOMContentLoaded
(выберите load
для обратную совместимость), если вы еще этого не сделали:
window.addEventListener("DOMContentLoaded", function () {
var form = document.... // copy the last code block!
});
Добавьте атрибут onclick
к ссылке и id
в форму:
<form id="form-id">
<a href="#" onclick="document.getElementById('form-id').submit();"> submit </a>
</form>
Каким бы способом вы ни выбрали, вы в конечном итоге вызываете formObject.submit()
(где formObject
- объект DOM тега <form>
).
Вам также необходимо связать такой обработчик событий, который вызывает formObject.submit()
, поэтому он вызывается, когда пользователь нажимает на определенную ссылку или кнопку. Существует два способа:
Рекомендуется: привязать прослушиватель событий к объекту DOM.
// 1. Acquire a reference to our <form>.
// This can also be done by setting <form name="blub">:
// var form = document.forms.blub;
var form = document.getElementById("form-id");
// 2. Get a reference to our preferred element (link/button, see below) and
// add an event listener for the "click" event.
document.getElementById("your-id").addEventListener("click", function () {
form.submit();
});
Не рекомендуется: Вставить встроенный JavaScript. Существует несколько причин, по которым этот метод не рекомендуется. Одним из основных аргументов является то, что вы смешиваете разметку (HTML) со сценариями (JS). Код становится неорганизованным и довольно незаменимым.
<a href="#" onclick="document.getElementById('form-id').submit();">submit</a>
<button onclick="document.getElementById('form-id').submit();">submit</button>
Теперь мы переходим к точке, в которой вам нужно решить элемент UI, который вызывает вызов submit().
Кнопка
<button>submit</button>
Ссылка
<a href="#">submit</a>
Примените вышеупомянутые методы, чтобы добавить слушателя событий.
Если вы используете jQuery и вам понадобится встроенное решение, это будет работать очень хорошо;
<a href="#" onclick="$(this).closest('form').submit();">submit form</a>
Кроме того, вы можете заменить
<a href="#">text</a>
с
<a href="javascript:void(0);">text</a>
чтобы пользователь не прокручивал верхнюю часть страницы при нажатии ссылки.
Вы можете указать форму и ссылку на некоторые идентификаторы, а затем подписаться на событие onclick
ссылки и submit
на форму:
<form id="myform" action="" method="POST">
<a href="#" id="mylink"> submit </a>
</form>
а затем:
window.onload = function() {
document.getElementById('mylink').onclick = function() {
document.getElementById('myform').submit();
return false;
};
};
Я бы порекомендовал вам использовать кнопку отправки для отправки форм, поскольку она уважает семантику разметки, и она будет работать даже для пользователей с отключенным javascript.
это хорошо работает без какой-либо специальной функции. Гораздо проще писать с php. <input onclick="this.form.submit()"/>
вот лучшее решение вашего вопроса: внутри формы у вас есть этот код:
<li><a href="#">Singup</a></li>
<button type="submit" id="haha"></button>
в файле CSS, сделайте следующее:
button{
display: none;
}
в JS вы это делаете:
$("a").click(function(){
$("button").trigger("click");
})
Там вы идете.
HTML и CSS - Нет Javascript Solution
Создайте свою кнопку, как ссылку Bootstrap
HTML:
<form>
<button class="btn-link">Submit</button>
</form>
CSS
.btn-link {
background: none;
border: none;
padding: 0px;
color: #3097D1;
font: inherit;
}
.btn-link:hover {
color: #216a94;
text-decoration: underline;
}
<form id="mailajob" method="post" action="emailthijob.php">
<input type="hidden" name="action" value="emailjob" />
<input type="hidden" name="jid" value="<?php echo $jobid; ?>" />
</form>
<a class="emailjob" onclick="document.getElementById('mailajob').submit();">Email this job</a>
document.getElementById("theForm").submit();
Он отлично работает в моем случае.
вы также можете использовать его в функции,
function submitForm()
{
document.getElementById("theForm").submit();
}
Установите "theForm" в качестве идентификатора формы. Это сделано.