Browse Source
1). Next step will be an opt-in/out to mailman. 2). Originally this program was using google lists, but there are too many steps for users involved.devel
Jonathan Rosenbaum
10 years ago
12 changed files with 269 additions and 127 deletions
@ -0,0 +1,7 @@ |
|||
|
|||
/* errors */ |
|||
#waiver_error, #phone_error, #email_error, |
|||
#first_name_error, #last_name_error |
|||
{ |
|||
color: red; |
|||
} |
@ -0,0 +1,122 @@ |
|||
$(function(){ |
|||
|
|||
"use strict"; |
|||
|
|||
var birth_date = $("#birth_date"); |
|||
var waiver_checkbox = $("#waiver_checkbox"), waiver_error = $("#waiver_error"); |
|||
var first_name = $("#first_name"), first_name_error = $("#first_name_error"); |
|||
var last_name = $("#last_name"), last_name_error = $("#last_name_error"); |
|||
var phone = $("#phone"), phone_error = $("#phone_error"); |
|||
var email = $("#email"), email_error = $("#email_error"); |
|||
var zip = $("#zip"); |
|||
var state_abbreviation = $("#state_abbreviation"); |
|||
|
|||
// sensible defaults
|
|||
first_name.mask('#',{placeholder: "first", translation: {"#": {pattern: /[A-Za-z0-9@.]/, recursive: true} } }); |
|||
last_name.mask('#',{placeholder: "last", translation: {"#": {pattern: /[A-Za-z0-9@.]/, recursive: true} } }); |
|||
birth_date.mask("0000-00-00", {placeholder: "yyyy-mm-dd" }); |
|||
phone.mask('(000) 000-0000', {placeholder: "(000) 000-0000"}); |
|||
email.mask('#',{placeholder: "_@_", translation: {"#": {pattern: /[A-Za-z0-9@.]/, recursive: true} } }); |
|||
zip.mask('00000-0000', {placeholder: "00000-0000"}); |
|||
state_abbreviation.mask('AA',{placeholder: "WV", translation: {"A": {pattern: /[A-Za-z]/, recursive: false} } }); |
|||
$("#submit_contact").on("click keypress", function(e) { |
|||
|
|||
// check for errors
|
|||
//error_handler(input,error_span,error,error_text,event);
|
|||
|
|||
var err0 = 0, err1 = 0; |
|||
|
|||
// first name & last name input
|
|||
error_handler(first_name.val(), first_name_error, "","*Required",e); |
|||
error_handler(last_name.val(), last_name_error, "","*Required",e); |
|||
|
|||
// email and phone input
|
|||
if (email.val() === "" && phone.val() === "") { |
|||
|
|||
error_handler(email.val(), email_error, "","*Required - email address and/or phone number",e); |
|||
error_handler(phone.val(), phone_error, "","*Required - email address and/or phone number",e); |
|||
|
|||
} else if ( (email.val() === "" && phone.val() !== "") ) { |
|||
|
|||
email_error.hide(); |
|||
phone_error.hide(); |
|||
phone_validator(phone.val(),e); |
|||
|
|||
} else if ( (email.val() !== "" && phone.val() === "") ) { |
|||
|
|||
email_error.hide(); |
|||
phone_error.hide(); |
|||
email_validator(email.val(),e); |
|||
|
|||
} else if ( email.val() && phone.val() ) { |
|||
|
|||
email_error.hide(); |
|||
phone_error.hide(); |
|||
phone_validator(phone.val(),e); |
|||
email_validator(email.val(),e); |
|||
|
|||
} |
|||
|
|||
// waiver checkbox
|
|||
error_handler(waiver_checkbox.prop("checked"),waiver_error,false,"*Required",event); |
|||
|
|||
} ); |
|||
|
|||
|
|||
// waiver slideup/slidedown
|
|||
$('#waiver').hide(); |
|||
var c=0; |
|||
$('#waiver_button').click(function(e){ |
|||
e.preventDefault(); |
|||
if (c == 0) { |
|||
$('#waiver').slideDown(); |
|||
$(this).attr("value","Hide Waiver"); |
|||
c++; |
|||
} else { |
|||
$('#waiver').slideUp(); |
|||
$(this).attr("value","Show Waiver"); |
|||
c--; |
|||
} }); |
|||
|
|||
|
|||
function phone_validator(val, e) { |
|||
var re = /^\(\d{3}\)\s?\d{3}-\d{4}$/; |
|||
if ( !re.test(val) ) { |
|||
console.log("hello"); |
|||
error_handler(false, phone_error, false,"*Enter a correct phone number",e); |
|||
} |
|||
} |
|||
|
|||
|
|||
function email_validator(val, e) { |
|||
// https://fightingforalostcause.net/content/misc/2006/compare-email-regex.php
|
|||
var re = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i; |
|||
if ( !re.test(val) ) { |
|||
error_handler(false, email_error, false,"*Enter a correct email address",e); |
|||
} |
|||
} |
|||
|
|||
|
|||
// error handler for contacts
|
|||
function error_handler(input,error_span,error,error_text,event) { |
|||
var trans_error = 0; |
|||
if ( input == error ) { |
|||
if ( !error_span.is(":visible") ) { |
|||
error_span.show(); |
|||
} |
|||
error_span.html(error_text); |
|||
trans_error = 1; |
|||
} else { |
|||
trans_error = 0; |
|||
error_span.hide(); |
|||
} |
|||
|
|||
if (trans_error) { |
|||
event.preventDefault(); |
|||
} |
|||
|
|||
return trans_error; |
|||
|
|||
} // end error_handling function
|
|||
|
|||
}); |
Loading…
Reference in new issue