Отправить форму на событие click с помощью jquery
Так может кто-нибудь, пожалуйста, объясните, почему ни один из этих вариантов не отправит форму? Я пытаюсь сделать что-то более сложное, но я отбросил это до того, чтобы попытаться выяснить, почему я не могу представить эту форму для отправки с помощью события click и submit()
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('#submitButton').click(function(e) {
e.preventDefault();
$("#testForm").submit();
});
$('#submitLink').click(function(e) {
e.preventDefault();
$("#testForm").submit();
});
});
</script>
</head>
<body>
<form action="javascript:alert('submitted');" method="post" id="testForm">
<label>Name</label>
<input type="text" name="name" value="" />
<input type="submit" name="submit" value="Submit" id="submitButton" />
<p><a href="#" id="submitLink">Submit Form</a></p>
</form>
</body>
</html>
Спасибо!
Ответы
Ответ 1
Если у вас есть действие формы и тип ввода = отправить внутри тегов формы, он собирается отправить старомодный способ и в основном обновить страницу. При выполнении транзакций типа AJAX это не является желаемым эффектом.
Удалите действие. Или удалите форму вообще, хотя в случаях, когда это очень полезно для сериализации, чтобы сократить вашу рабочую нагрузку. Если теги формы остаются, переместите кнопку за пределы тегов формы или, альтернативно, сделайте ссылку на обработчик onclick или click, а не на кнопку ввода. JQuery UI Buttons отлично работает в этом случае, потому что вы можете имитировать кнопку ввода с элементом тега.
Ответ 2
потому что имя кнопки отправки называется "отправить" , измените его на что угодно, кроме "отправить" , попробуйте "отправить" и повторите попытку. Затем он должен работать.
Ответ 3
Почему бы просто не использовать кнопку отправки для запуска кода, который вы хотите. Если функция возвращает false, она отменяет подачу.
$("#testForm").submit(function() {
/* Do Something */
return false;
});
Ответ 4
С помощью кнопки jQuery нажмите
$('#button_id').on('click',function(){
$('#form_id').submit();
});
Ответ 5
Вам нужно отправить форму в URL-адрес или вам нужно только обнаружить событие-событие? Поскольку вы можете обнаружить событие submit, добавив onsubmit="javascript:alert('I do also submit');"
<form action="javascript:alert('submitted');" method="post" id="testForm" onsubmit="javascript:alert('I do also submit');">...</form>
Не уверен, что это то, что вы ищете.