Skip to content

Instantly share code, notes, and snippets.

@jtsternberg
Created January 7, 2021 16:30
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jtsternberg/b82eafad9117f82122939bd5e7e3c50f to your computer and use it in GitHub Desktop.
Save jtsternberg/b82eafad9117f82122939bd5e7e3c50f to your computer and use it in GitHub Desktop.
OptinMonster, validation to require first/last name
<script>
document.addEventListener('om.Campaign.afterShow', function(event) {
var campaign = event.detail.Campaign;
if ( '{{id}}' !== campaign.id ) {
return;
}
var validationError = 'A last name is required.';
var $nameField = document.getElementById( '{{ns}}-field-name' );
var $btn = document.getElementsByClassName( '{{ns}}-field-submit' )[0];
function nameValidates() {
// Make sure there are 2 distinct names.
return $nameField.value.search(/^[a-z,.'-]+ +[a-z,.'-]+$/i) >= 0;
}
$btn.disabled = true;
$nameField.addEventListener( 'keyup', function() {
$btn.disabled = ! nameValidates();
} );
$nameField.addEventListener( 'blur', function() {
campaign.Form.resetValidation()
if ( ! nameValidates() ) {
campaign.Form.errors.validate.push(validationError)
campaign.Form.showValidateErrors()
}
} );
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment