jQuery submit form without reloading page
Rather than bind to the click event (input[type=submit]
) you should bind to the submit
event for the form.
$("form").on("submit", function (e) {
e.preventDefault();
I'm also not sure about the validation. If it runs asynchronously, a callback is required. If it runs synchronously, when does it get triggered? It seems like it should be done when the form is submitted unless your validation plugin does that on its own:
$("form").on("submit", function (e) {
e.preventDefault();
if ($(this).validate(options)) {
$.ajax
Using e.preventDefault
will prevent reload and should allow your success div to display.
1) Use event.preventDefault();
to keep the form from submitting
-http://api.jquery.com/event.preventDefault/
2) There isn't anything in the given script that should be causing #result to hide, but you can try $('#result').show()
and see if that brings it back
Please check which jQuery version you are using because in after jQuery 1.8.2 "success" function from jQuery Ajax is deprecated.
Use e.preventDefault()
to prevent actual submit event.