Regex validation of form fields

  • 30 July 2010
  • 3 replies
  • 9 views

Would be great to be able to specify validation rules for form fields. Right now, you can only specify that a field is required or optional. I would love to be able to put in a regex that would be used to validate what the user enters.


3 replies

EDIT: modified to work with the unannounced change Unbounce has made to its jQuery provision that broke 139 of my forms and cost me half a day and half my hair… a little WARNING next time might be nice…

So I thought I’d share the solution I brewed up. The hard part was figuring out I had to override the submit button’s onclick function. This will run any generic validation function you write (“vForm”) and not let the form submit until it returns true:

lp.jQuery().ready(function() { 

  var id=window.module.lp.form.data.formButtonId; 

  // deletes unbounce-added submit function: 

  lp.jQuery("#"+id).unbind("click"); 

  lp.jQuery("#"+id).click(function(e) { 





e.preventDefault(); 





e.stopPropagation(); 





if (vForm()) { lp.jQuery("form").submit(); } 

  }); });

So to make sure it only allows five-digit zip codes in the “zip_code” field, for instance, your vForm() could look like this. It can validate (and update) any number of fields and return false if any fail.

function vForm() { 

  var Vzip=lp.jQuery("#zip_code").val().replace(/\D/g, "").substr(0,5); 

  if (Vzip.length != 5 || Vzip=="00000") { 





alert("5-digit numeric American ZIP code is required."); 





return false; 

  } 

  // optional, to update the field with the cleaned value: 

  lp.jQuery("#zip_code").val(Vzip); 

  return true; }

Just put both of those in one block, then add it to your form’s Scripts (that button on the toolbar) in the “Head” position.

Did this ever get added?

Hello John - yes, we have been discussing a few ways we can improve the usefulness of forms through validation.

We’ll make sure this idea gets into the mix.

JM

Reply