My goal is: When for is submitted:
- a validation on form is made : OK
- an ajax is called to see that username and password do match : OK
- if they don't match, display an error: OK
- if they match, then REALLY SUBMIT the form: NOT OK.
Infact the trouble is, I cannot submit the form since there is a jquery submit event on it!
function form1Submit() {
var username=$('#username').val();
var password=$('#password').val();
if (username.length<2) {
return false;
}
if (password.length<2) {
return false;
}
$.post("check.php", { username: username, password:password }, function(data) {
if (data=="ko") {
alert('bad password');
return false;
} else {
//to be done here !
}
});
return false;
}
function init() {
$('#form1').submit(function(){
return form1Submit();
})
}
$(document).ready(function(){
init();
})
You can call the native submit event, so do this:
Then in your post callback do this:
The
this.submit()
isn't calling he jQuery.submit()
trigger function, but rather the native<form>
.submit()
function.The
return false
is blocking the default form submit action. You have either toreturn true
from theform1Submit()
function to let the default form submit action do its job, or to add another$.post()
inside theelse
which submits the data to the form asynchronously, if your intent was to do it using ajaxical powers.The problem is that form1Submit always returns false.