diff --git a/public/parts/signup.php b/public/parts/signup.php index 5f9c7b1..738a328 100644 --- a/public/parts/signup.php +++ b/public/parts/signup.php @@ -93,28 +93,32 @@ if (isset($_SESSION['familyid']) && $database->has('families', ['familyid' => $_ "icon" => "fas fa-users", "name" => "familyname", "maxlength" => 100, - "value" => $familyname + "value" => $familyname, + "error" => "Enter your last name." ], [ "label" => "Father's Name", "icon" => "fas fa-male", "name" => "fathername", "maxlength" => 255, - "value" => $fathername + "value" => $fathername, + "error" => "Enter the father's name." ], [ "label" => "Mother's Name", "icon" => "fas fa-female", "name" => "mothername", "maxlength" => 255, - "value" => $mothername + "value" => $mothername, + "error" => "Enter the mother's name." ], [ "label" => "Street Address", "icon" => "fas fa-home", "name" => "streetaddress", "maxlength" => 500, - "value" => $streetaddress + "value" => $streetaddress, + "error" => "Enter your address." ], [ "label" => "City", @@ -122,7 +126,8 @@ if (isset($_SESSION['familyid']) && $database->has('families', ['familyid' => $_ "name" => "city", "maxlength" => 255, "width" => 3, - "value" => $city + "value" => $city, + "error" => "Enter your city." ], [ "label" => "State", @@ -130,6 +135,7 @@ if (isset($_SESSION['familyid']) && $database->has('families', ['familyid' => $_ "name" => "state", "type" => "select", "value" => $state, + "error" => "Choose a state.", "options" => [ 'MT' => 'Montana', 'AL' => 'Alabama', @@ -192,14 +198,19 @@ if (isset($_SESSION['familyid']) && $database->has('families', ['familyid' => $_ "name" => "zip", "maxlength" => 10, "width" => 3, - "value" => $zip + "value" => $zip, + "pattern" => "[0-9]{5}(-?[0-9]{4})?", + "error" => "Enter a valid 5 or 9 digit ZIP code." ], [ "label" => "Phone Number", "icon" => "fas fa-phone", "name" => "phone", + "type" => "tel", "maxlength" => 20, - "value" => $phone + "value" => $phone, + "pattern" => "[0-9]{10}", + "error" => "Enter a 10-digit phone number (numbers only)." ], [ "label" => "Email", @@ -207,7 +218,8 @@ if (isset($_SESSION['familyid']) && $database->has('families', ['familyid' => $_ "name" => "email", "maxlength" => 255, "type" => "email", - "value" => $email + "value" => $email, + "error" => "Enter your email address." ], [ "label" => "Newsletter Preference", @@ -219,7 +231,8 @@ if (isset($_SESSION['familyid']) && $database->has('families', ['familyid' => $_ "1" => "Email ($25)", "2" => "Paper ($35)", "3" => "Email and Paper ($35)" - ] + ], + "error" => "Choose a newsletter option." ] ]; @@ -241,6 +254,13 @@ if (isset($_SESSION['familyid']) && $database->has('families', ['familyid' => $_ aria-label="" maxlength="" + pattern="" + + value="" @@ -265,6 +285,9 @@ if (isset($_SESSION['familyid']) && $database->has('families', ['familyid' => $_ +
+ +
@@ -455,7 +478,14 @@ if (isset($_SESSION['familyid']) && $database->has('families', ['familyid' => $_ diff --git a/public/static/signup.js b/public/static/signup.js index 833edda..50ca076 100644 --- a/public/static/signup.js +++ b/public/static/signup.js @@ -33,14 +33,31 @@ card.addEventListener('change', function (event) { } }); +$("#savebutton").click(function (event) { + var form = $("#membershipform"); + + if (form[0].checkValidity() === false) { + event.preventDefault() + event.stopPropagation() + } + form.addClass('was-validated'); +}); + $("#membershipform").on("submit", function (event) { event.preventDefault(); + // prevent multiple clicks since Stripe can take a few seconds + $("#savebutton").prop("disabled", true); + $("#savebutton-text").addClass("d-none"); + $("#savebutton-wait").removeClass("d-none"); stripe.createToken(card).then(function (result) { if (result.error) { // Inform the customer that there was an error. $("#card-errors").removeClass("d-none"); $("#card-errors").text(event.error.message); + $("#savebutton").prop("disabled", false); + $("#savebutton-text").removeClass("d-none"); + $("#savebutton-wait").addClass("d-none"); } else { $("#stripe-token").val(result.token.id); console.log(result.token);