File: /var/www/html/wp-content/plugins/memberpress/js/validate.js
/** Some basic methods to validate form elements */
var mpValidateEmail = function (email) {
//In case the email is not entered yet and is not required
if(!email || 0 === email.length) {
return true;
}
// https://stackoverflow.com/a/46181/6114835
// var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
var re = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i; //Accepts unicode???
return re.test(email);
//OLD, but doesn't work super well
// var filter = /^[A-Z0-9._'%+-]+@[A-Z0-9.-]+\.[A-Z]{2,25}$/i;
// return filter.test(email);
};
var mpValidateUrl = function(url) {
var re = /(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)/;
return re.test(url);
};
var mpValidateNotBlank = function(val) {
var str = val.trim();
return (str && str.length > 0);
};
var mpValidateFieldNotBlank = function($field) {
var notBlank = true;
if(!$field.is(':visible')) {
// Pass validation on fields that are not visible
}
else if ($field.is('input') || $field.is('select') && !$field.hasClass('mepr-multi-select-field') || $field.is('textarea')) {
notBlank = mpValidateNotBlank($field.val());
}
else if ($field.hasClass('mepr-checkbox-field')) {
notBlank = $field.find('input').is(':checked');
}
else if ($field.hasClass('mepr-radios-field') || $field.hasClass('mepr-checkboxes-field') || $field.hasClass('mepr-multi-select-field')) {
var input_vals = [];
var selector = $field.hasClass('mepr-multi-select-field') ? 'option:selected' : 'input:checked';
$field.find(selector).each(function (i, obj) {
input_vals.push(true);
});
notBlank = input_vals.length > 0;
}
return notBlank;
};
var mpToggleFieldValidation = function(field, valid) {
field.toggleClass('invalid', !valid);
field.toggleClass('valid', valid);
if(field.hasClass('mepr-password-confirm') || field.hasClass('mepr-password')) {
field.parent().prev('.mp-form-label').find('.cc-error').toggle(!valid);
} else {
field.prev('.mp-form-label').find('.cc-error').toggle(!valid);
}
if(field.hasClass('mepr-coupon-code') && valid) {
field.prev('.mp-form-label').find('.cc-success').toggle(valid);
setTimeout(function() {
field.prev('.mp-form-label').find('.cc-success').toggle(!valid);
field.removeClass('valid');
}, 2000);
}
if(field.hasClass('mepr-countries-dropdown')) {
field.closest('.mepr-form').find('.mepr_mepr-address-state .cc-error').toggle(!valid);
}
field.triggerHandler('mepr-validate-field', valid);
var form = field.closest('.mepr-form');
if (0 < form.find('.invalid').length) {
// Toggle CSS directly so we can ensure 'block' display
form.find('.mepr-form-has-errors').css('display','block');
} else {
form.find('.mepr-form-has-errors').css('display','none');
}
};