onSubmit возвращающий false не работает

Я полностью смущен... Я поклялся бы, что это работало вчера... Я проснулся этим утром и все мои формы, остановленные для работы в моем проекте.

Все формы имеют "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

Почему, если я нажимаю кнопку, форма отправляется?

Я знаю, что это - общий вопрос о новичке, но я застреваю

Спасибо!

13
задан jcjr 9 February 2015 в 14:17
поделиться

4 ответа

Событие onsubmit запускается только для отправки в обычной форме. Он не срабатывает при вызове метода JavaScript submit () .

Лучшее решение - использовать здесь обычную кнопку отправки.

Если вы хотите продолжить использование ссылки в верхней части страницы (которая не является ненавязчивой , прогрессивной или изящной), вам необходимо позвонить по номеру ] sub () явно и проверяет возвращаемое значение, прежде чем решить, следует ли вызывать submit () или нет.

5
ответ дан 1 December 2019 в 21:11
поделиться

Браузеры не вызывают событие onSubmit в форме, если вы вызываете submit () программно.

12
ответ дан 1 December 2019 в 21:11
поделиться

Похоже, что функция '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>
7
ответ дан 1 December 2019 в 21:11
поделиться

Попробуйте изменить код "кнопки" следующим образом

<a href="#" onClick="return document.getElementById('form1').onsubmit();">button</a> 
2
ответ дан 1 December 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: