Reputation: 69
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
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
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