Refactor error handling

This commit is contained in:
Erik Michaels-Ober 2011-03-05 08:38:44 -08:00
parent 9e28069da7
commit 48b6e84013
2 changed files with 23 additions and 19 deletions

View File

@ -52,40 +52,46 @@
infoWindow.open(map, marker); infoWindow.open(map, marker);
$('.combo_form').data('state', 'new'); $('.combo_form').data('state', 'new');
$('.combo_form').submit(function() { $('.combo_form').submit(function() {
var errors = []
if(!/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]+$/.test($('.email').val())) {
errors.push($('.email'));
$('.email_label').addClass('error', 500);
$('.email').addClass('error', 500);
} else {
$('.email_label').removeClass('error', 500);
$('.email').removeClass('error', 500);
}
if($(this).data('state') === 'new') { if($(this).data('state') === 'new') {
if($('.choose_password').val() === '') {
$('.choose_password').focus();
$('.choose_password_label').addClass('error', 500);
$('.choose_password').addClass('error', 500);
} else {
$('.choose_password_label').removeClass('error', 500);
$('.choose_password').removeClass('error', 500);
}
if($('.name').val() === '') { if($('.name').val() === '') {
$('.name').focus(); errors.push($('.name'));
$('.name_label').addClass('error', 500); $('.name_label').addClass('error', 500);
$('.name').addClass('error', 500); $('.name').addClass('error', 500);
} else { } else {
$('.name_label').removeClass('error', 500); $('.name_label').removeClass('error', 500);
$('.name').removeClass('error', 500); $('.name').removeClass('error', 500);
} }
if($('.choose_password').val() === '') {
errors.push($('.choose_password'));
$('.choose_password_label').addClass('error', 500);
$('.choose_password').addClass('error', 500);
} else {
$('.choose_password_label').removeClass('error', 500);
$('.choose_password').removeClass('error', 500);
}
} else if($(this).data('state') === 'existing') { } else if($(this).data('state') === 'existing') {
if($('.password').val() === '') { if($('.password').val() === '') {
$('.password').focus(); errors.push($('.password'));
$('.password_label').addClass('error', 500); $('.password_label').addClass('error', 500);
$('.password').addClass('error', 500); $('.password').addClass('error', 500);
} else { } else {
$('.password_label').removeClass('error', 500); $('.password_label').removeClass('error', 500);
$('.password').removeClass('error', 500); $('.password').removeClass('error', 500);
} }
} else if($(this).data('state') === 'forgot_password') {
} }
if(!/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]+$/.test($('.email').val())) { if(errors.length > 0) {
$('.email').focus(); errors[0].focus();
$('.email_label').addClass('error', 500);
$('.email').addClass('error', 500);
} else { } else {
$('.email_label').removeClass('error', 500);
$('.email').removeClass('error', 500);
} }
return false; return false;
}); });
@ -108,8 +114,6 @@
$('#address_label').addClass('error', 500); $('#address_label').addClass('error', 500);
$('#address').addClass('error', 500); $('#address').addClass('error', 500);
return false; return false;
} else {
return true;
} }
}); });
$('.box input[type="radio"]').live('click', function() { $('.box input[type="radio"]').live('click', function() {

View File

@ -79,5 +79,5 @@ label.error {
} }
input.error { input.error {
background-color: #fcc; background-color: #ffc;
} }