отправить форму по событию клика, используя jquery - PullRequest
11 голосов
/ 10 июня 2011

Так может кто-нибудь сказать, почему ни один из этих вариантов не отправит форму?Я пытаюсь сделать что-то более сложное, но я свел это к следующему, чтобы попытаться выяснить, почему я не могу получить эту форму для отправки, используя событие 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>

Спасибо!

Ответы [ 5 ]

11 голосов
/ 10 июня 2011

это потому, что имя кнопки отправки называется «submit», измените его на что угодно, кроме «submit», попробуйте «submitme» и повторите попытку. Это должно тогда работать.

8 голосов
/ 10 июня 2011

Почему бы просто не использовать кнопку отправки для запуска кода, который вы хотите.Если ваша функция возвращает false, она отменит отправку.

$("#testForm").submit(function() {
    /* Do Something */
    return false;
});
5 голосов
/ 10 июня 2011

Если у вас есть действие формы и тип ввода = отправка внутри тегов формы, он будет отправлен по старинке и в основном обновит страницу.При выполнении транзакций типа AJAX это нежелательный эффект.

Удалите действие.Или вообще удалите форму, хотя в некоторых случаях она пригодится для сериализации, чтобы сократить вашу рабочую нагрузку.Если теги формы остаются, переместите кнопку за пределы тегов формы или, в качестве альтернативы, сделайте ее ссылкой с обработчиком щелчка или щелчка мыши, а не кнопкой ввода.JQuery UI Buttons прекрасно работает в этом случае, потому что вы можете имитировать кнопку ввода с элементом тега.

4 голосов
/ 11 июня 2015

Использование кнопки jQuery

$('#button_id').on('click',function(){
     $('#form_id').submit();
 });
2 голосов
/ 10 июня 2011

Вам нужно отправить форму на URL-адрес или вам нужно только обнаружить событие submit? Потому что вы можете обнаружить 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>

Не уверен, что это то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...