const regex = {
name: /^[a-z]{2,16}$/i,
message: /^[a-z]{15,100}$/i,
};
const validateInput = input => $(input)
.closest('.form-group')
.removeClass('has-success has-error')
.addClass(regex[input.id].test(input.value) ? 'has-success' : 'has-error')
.hasClass('has-success');
$('form').on('input submit', function(e) {
const isSubmit = e.type === 'submit';
const isErrors = (isSubmit ? [...$('.form-control', this)] : [ e.target ])
.map(n => !validateInput(n))
.some(Boolean);
if (isErrors && isSubmit) {
e.preventDefault();
}
});