2015-10-19 4 views
0

Я упростил свой код, чтобы уменьшить постороннюю информацию, но у меня такая же проблема с приведенным кодом, как и с более сложной версией. У меня есть форма, как это:jQuery .submit() не вызывается при отправке формы

<form id="password_reset_form" action="script_reset_password.php" method="POST"> 
    <input type="submit" value="Set Password" class="button-inactive" /> 
</form> 

и JQuery код, как это:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#password_reset_form").submit(function(){ 
      alert("form submit attempted"); 
      event.preventDefault(); 
     } 
    }); 
</script> 

Но JQuery .submit() не вызывается. Цель состоит в том, чтобы предотвратить отправку формы и отобразить сообщение об ошибке, если выполнено конкретное условие, но мой вопрос заключается в том, почему не вызывается .submit() при нажатии на <input type="submit" />?

+1

Ваш отправить код функции отсутствует закрывающий ')' ' – j08691

+0

Изменить}' в '});' - вы должны видеть ошибку синтаксиса. Инструменты Dev - ваш друг, не давайте им холодное плечо. :-) – PeterKA

ответ

5

Вам нужно поймать event из функции обратного вызова.

$(document).ready(function(){ 
    $("#password_reset_form").submit(function(e){ 
     alert("form submit attempted"); 
     e.preventDefault(); 
    }); 
}); 
+0

И закройте привязку события с помощью ');'. – PeterKA

+1

Прекрасно работает без него (хотя я согласен, что он там есть). http://jsfiddle.net/j08691/mpbtd4cz/ – j08691

+0

@ j08691 приятно знать, что 'event' определен в области, даже если он * не был определен * ... – DontVoteMeDown

2

У вас есть синтаксические ошибки в коде. Готовый документ должен быть закрыт.

$(document).ready(function(){ 
     $("#password_reset_form").submit(function(evt){ 
      alert("form submit attempted"); 
      evt.preventDefault(); 
     }); 
}); 

https://jsfiddle.net/h19bk8ft/2/

Смежные вопросы