From 9bfb5e10dec24c9e0d81cb996ee743d93a50e6c0 2014-12-02 16:31:43 From: Bradley M. Kuhn Date: 2014-12-02 16:31:43 Subject: [PATCH] Rework form with error messages & basic validation Since PayPal cannot seem to be cajoled into verifying a minimum amount, we have to do it here with Javascript. This isn't perfect validation: the form can currently still be submitted with an amount less than $120, but at least this way Javascript-enabled browsers might prevent some folks from doing that. --- diff --git a/www/conservancy/static/forms.css b/www/conservancy/static/forms.css new file mode 100644 index 0000000000000000000000000000000000000000..130d536a0623ad0e73585203551ec63eab3db1e6 --- /dev/null +++ b/www/conservancy/static/forms.css @@ -0,0 +1,32 @@ +#supporter-form label { + display: inline-block; + width: 200px; + text-align: right; +} + +#supporter-form-submit { + padding-left: 100px; +} + +#supporter-form div { + margin-top: 1em; +} + +.form-error { + display: none; + margin-left: 10px; + color: green; +} + +.form-error-show { + color: red; + margin-left: 10px; +} + +input.invalid, textarea.invalid { + border: 2px solid red; +} + +input.valid, textarea.valid { + border: 2px solid green; +} diff --git a/www/conservancy/static/supporter-page.js b/www/conservancy/static/supporter-page.js index 6741e7b557b4a6d18344abfb85a30cfa67c7cef4..f18a8306ff957b623827aa9681f60298c0fb22cf 100644 --- a/www/conservancy/static/supporter-page.js +++ b/www/conservancy/static/supporter-page.js @@ -32,4 +32,21 @@ $(document).ready(function() { $control.find('.toggle-content').slideUp("slow"); $control.find('.toggle-content').slideDown("slow"); }); + $('#amount').on('input', function() { + var input=$(this); + var value = input.val(); + var errorElement=$("span", input.parent()); + + var re = /^[0-9\.]+$/; + var isValid = (re.test(value) && parseInt(value) >= 120); + if (isValid) { + input.removeClass("invalid").addClass("valid"); + errorElement.removeClass("form-error-show").addClass("form-error"); + } + else { + input.removeClass("valid").addClass("invalid"); + errorElement.removeClass("form-error").addClass("form-error-show"); + } + }); + }); diff --git a/www/conservancy/static/supporter/index.html b/www/conservancy/static/supporter/index.html index 7e3a5351d9ef0317b5efb104759f2d1b9cf3ffba..6d325c99692f98b684d2b80f40bdde43666e7755 100644 --- a/www/conservancy/static/supporter/index.html +++ b/www/conservancy/static/supporter/index.html @@ -4,6 +4,7 @@ {% block head %} + @@ -123,17 +124,19 @@ internal policies are published and available for scrutiny.

- -
Amount:
$
- ($120 minimum; increase the amount if you'd like to help us more.) +
+ + + $120 minimum to become a Conservancy Supporter. Visit our regular donate page if you'd like + to donate less than $120.
-
Do you want to receive a t-shirt?
+ Yes No
-
T-shirt size:
+
-
Would you like to be acknowledged publicly as a Conservancy Supporter?
+ Yes No
-
Join Conservancy's Low-Traffic Announcement Email List?
+ Yes No