jQuery submit() не выполняется при отправке формы
Я пытаюсь запустить файл PHP, когда пользователь отправляет форму. Однако функция submit() никогда не запускается. Я прочитал много постов с предложениями по этому поводу, и ни один из них не решил проблему. Итак, у меня есть форма, которая выглядит так:
<body>
<form id="signupform">
<div id="required">
<table>
Form fields
</table>
</div>
<div id="notrequired">
<table>
More form fields
</table>
</div>
<button type="Submit" name="action">Submit</button>
</form>
<script>
$(document).ready(function() {
$("#signupform").submit(function(e) {
alert("Please work!");
$.ajax({
type : 'POST',
url : 'process.php',
data : JSON.stringify($'signupform').serializeArray(),
dataType: 'json'
})
//More code
});
}););
</script>
</body>
Ничто, кроме типа, не имеет значения "Отправить" в файле. Я пробовал с и без $(документ).ready(). Так что у меня практически нет идей. Какие-либо предложения.
О, это не работает ни в одном браузере.
2 ответа
В этой строке есть синтаксическая ошибка:
data : JSON.stringify($'signupform').serializeArray(),
Вы пропустили скобки в звонке $()
,
Также вы пропустили #
выбрать по идентификатору, и вы можете захотеть .serialize()
скорее, чем .serializeArray()
Хотя, очевидно, это не синтаксическая ошибка.
Так должно быть:
data : JSON.stringify($('#signupform').serialize()),
// add parens here -------^ ^ and here ------------^
// add # here --------------/
Также был дополнительный );
в конце вашей функции, которая должна быть удалена.
Вам не нужно JSON.stringify()
или:
data : $('#signupform').serialize(),
И где-то (возможно, у вас это уже есть в разделе "больше кода") вы хотите остановить действие отправки формы по умолчанию:
e.preventDefault();
Добавьте этот отредактированный код в тег скрипта:
$(document).ready(function()
{
$("#signupform").submit(function(e)
{
alert("Please work!");
$.ajax({
type : 'POST',
url : 'process.php',
data : JSON.stringify($('#signupform').serializeArray()),
dataType: 'json'
})
//More code
});
});
Надеюсь это поможет.