Search code examples
javascriptjqueryformssubmit

jQuery form submit


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();
})

Solution

  • You can call the native submit event, so do this:

    $('#form1').submit(form1Submit);
    

    Then in your post callback do this:

    $.post("check.php", { username: username, password:password }, function(data) {
        if (data=="ko") {
            alert('bad password');
        } else {
            this.submit();
        }
    });
    

    The this.submit() isn't calling he jQuery .submit() trigger function, but rather the native <form> .submit() function.