Как в соответствии с рекомендацией по превентивной форме перенаправить OR refresh на submit? , У меня есть моя форма, которая
<form id="editingForm">
Line height (between 10 and 60):
<input type="number" id="LineHeightEntry" name="LineHeightEntry" min="10" max="60" value="30">
<input type="submit" id="submitLineChange" value="Submit">
</form>
В файле с именем test.html. Javascript - это
$('#editingForm').submit(function(){
alert("abc");
return false;
});
Цель состоит в том, чтобы вызвать функцию, а затем javascript может сделать что-то на странице, но страница не перезагружается или не перенаправляется в другое место. Однако вместо этого я получаю сообщение: я установил LineHeightEntry на 40 и нажал submit. Затем он перенаправляется на test.html? LineHeightEntry = 40. Почему это так?
edit - Файл находится по адресу http://probuling.net/sandbox/test.html.
Вот рабочий пример:
<html>
<head>
<script src="jquery-1.9.1.min.js"></script>
</head>
<form id="editingForm" action="toto">
Line height (between 10 and 60):
<input type="number" id="LineHeightEntry" name="LineHeightEntry" min="10" max="60" value="30">
<input type="submit" id="submitLineChange" value="Submit">
</form>
<script>
$('#editingForm').submit(function(event)
{
alert("abc");
event.preventDefault(); // if you want to disable the action
return false;
});
</script>
</html>
Добавьте атрибут действия в форму или просто обновите страницу при отправке.
<form id="editingForm" action="/another/url">
Я бы посоветовал узнать, как использовать обычную форму submit, прежде чем пытаться использовать Javascript. Любой вход с атрибутом имени будет добавлен к URL-адресу, поскольку у вас нет действия, а метод по умолчанию - GET.
попробуйте сделать это без jQuery. Кроме того, попробуйте использовать event.preventDefault
document.querySelector('#editingForm').onsubmit = function(event) {
alert('abc');
event.preventDefault();
return false;
};
удалить строку return false;
Это предотвратит событие по умолчанию. Подробнее: http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/
action
в своейform
... как я его не вижу