Я полностью смущен... Я поклялся бы, что это работало вчера... Я проснулся этим утром и все мои формы, остановленные для работы в моем проекте.
Все формы имеют "onsubmit" к функции, которая возвращает false, так как это - вызов ajax, таким образом, форма никогда не отправляется.
После большого количества тестов я упростил вопрос этой части кода:
<html>
<head>
<script type="text/javascript">
function sub()
{
alert ("MIC!");
return false;
}
</script>
</head>
<body>
<form method = "post" id = "form1" onsubmit = "return sub()">
input: <input type="text" name="input1" >
<a href="#" onClick="document.getElementById('form1').submit();">button</a>
</form>
</body>
</html>
Я поклялся бы, что это работает отлично, но сегодня, ни работа :D
Почему, если я нажимаю кнопку, форма отправляется?
Я знаю, что это - общий вопрос о новичке, но я застреваю
Спасибо!
Событие onsubmit запускается только для отправки в обычной форме. Он не срабатывает при вызове метода JavaScript submit ()
.
Лучшее решение - использовать здесь обычную кнопку отправки.
Если вы хотите продолжить использование ссылки в верхней части страницы (которая не является ненавязчивой , прогрессивной или изящной), вам необходимо позвонить по номеру ] sub ()
явно и проверяет возвращаемое значение, прежде чем решить, следует ли вызывать submit ()
или нет.
Браузеры не вызывают событие onSubmit в форме, если вы вызываете submit () программно.
Похоже, что функция 'submit ()' обходит событие 'onsubmit' тегов 'form' в Firefox и IE8. Если вы используйте кнопку отправки, тогда все работает как положено:
<html>
<head>
<script type="text/javascript">
function sub()
{
alert ("MIC!");
return false;
}
</script>
</head>
<body>
<form method = "post" action="http://google.com" id = "form1" onsubmit = "return sub();">
input: <input type="text" name="input1" >
<input type="submit">
</form>
</body>
</html>
Попробуйте изменить код "кнопки" следующим образом
<a href="#" onClick="return document.getElementById('form1').onsubmit();">button</a>