Jan Bantolinay
Jan Bantolinay

Reputation: 69

jQuery form not submitting even it returns true

Hi Guy i have this validation form.

The problem is even the flag returns true it still wont submit the form. I think this code can still be improved but my knowledge in jquery is limited

function validate_form() {
    var lesson_prefference = document.getElementById('Contact0_NewClubDropdown').value;
    var flag = false;

    if(lesson_prefference!=""){
        jQuery('#dropdown_err_msg_prefference').addClass('hidden');
        flag = !flag;       
    }

    else{
        jQuery('#dropdown_err_msg_prefference').removeClass('hidden');
        jQuery('html, body').animate({
            scrollTop: jQuery(".top-warning").offset().top}, 1000);   
        flag = !flag;

    }

    if (jQuery('#agreeCheckbox').is(':checked') ) {
        jQuery('#err_msg_prefference').addClass('hidden');
        flag = !flag;
    } 
    else {
        jQuery('#err_msg_prefference').removeClass('hidden');
        jQuery('html, body').animate({
            scrollTop: jQuery(".top-warning").offset().top}, 1000);
        flag = !flag;
    }   
    if (flag) {
        return true;
    }
    else {
        return false;
    }
}

Upvotes: 0

Views: 205

Answers (2)

Axel Amthor
Axel Amthor

Reputation: 11096

From my perspective, you have logic problem as soon as the form has even number of errors: the second flag = !flag will turn a false to true even if its an error

Better:

function validate_form() {
    var lesson_prefference = document.getElementById('Contact0_NewClubDropdown').value;
    var errorflag = false;

    if(lesson_prefference!=""){
        jQuery('#dropdown_err_msg_prefference').addClass('hidden');      
    }

    else{
        jQuery('#dropdown_err_msg_prefference').removeClass('hidden');
        jQuery('html, body').animate({
            scrollTop: jQuery(".top-warning").offset().top}, 1000);   
        errorflag = true;
    }

    if (jQuery('#agreeCheckbox').is(':checked') ) {
        jQuery('#err_msg_prefference').addClass('hidden');
    } 
    else {
        jQuery('#err_msg_prefference').removeClass('hidden');
        jQuery('html, body').animate({
            scrollTop: jQuery(".top-warning").offset().top}, 1000);
        errorflag = true;
    }   

    return !errorflag;
}

Upvotes: 0

Martin Lezer
Martin Lezer

Reputation: 153

function validate_form() {
    var lesson_prefference = document.getElementById('Contact0_NewClubDropdown').value;
    var flag = true;

    if(lesson_prefference!=""){
        jQuery('#dropdown_err_msg_prefference').addClass('hidden');     
    }

    else{
        jQuery('#dropdown_err_msg_prefference').removeClass('hidden');
        jQuery('html, body').animate({
            scrollTop: jQuery(".top-warning").offset().top}, 1000);   
        flag = false;

    }

    if (jQuery('#agreeCheckbox').is(':checked') ) {
        jQuery('#err_msg_prefference').addClass('hidden');
    } 
    else {
        jQuery('#err_msg_prefference').removeClass('hidden');
        jQuery('html, body').animate({
            scrollTop: jQuery(".top-warning").offset().top}, 1000);
        flag = false;
    }   

    return flag;
}

Upvotes: 1

Related Questions