function formValidation(formValidationElement, fields, submitButtonId) { return formValidationElement.formValidation({ framework: 'bootstrap4', button: formButton(submitButtonId), icon: null, fields: fields, err: { clazz: 'text-danger text-center' }, row: { invalid: 'has-danger' } }) .on('success.form.fv', function (e, data) { // Reset the message element when the form is valid // $('.text-danger').text(''); $("#register-loading").removeClass("d-none"); $("#submit_button").attr("disabled","disabled"); }) .on('err.field.fv', function (e, data) { showErrorMessages(data); addMaskInFields(); }) .on('success.field.fv', function (e, data) { removeErrorClasses(data); }); } function validationsCustomerInformationFields() { return { first_name: { validators: { stringLength: { max: 100, message: 'O campo de nome não pode ter mais que 100 caracteres', }, notEmpty: { message: 'O campo de nome não pode ser vazio', } } }, last_name: { validators: { stringLength: { max: 100, message: 'O campo de sobrenome não pode ter mais que 100 caracteres' }, notEmpty: { message: 'O campo de sobrenome não pode ser vazio' } } }, birth_date: { validators: { date: { format: 'DD/MM/YYYY', message: 'O campo de data de nascimento tem que ser válido' }, notEmpty: { message: 'O campo de data de nascimento não pode ser vazio' } } }, cellphone: { validators: { phone: { country: 'BR', message: 'O campo celular ser válido' }, } }, telephone: { validators: { phone: { country: 'BR', message: 'O campo telefone precisa ser válido' }, } }, email: { validators: { notEmpty: { message: 'O campo email não pode ser vazio' }, emailAddress: { message: 'O campo email precisa ser válido' } } }, document_cpf: { validators: { notEmpty: { message: 'O campo CPF não pode ser vazio' }, } }, cnpj: { validators: { notEmpty: { message: 'O campo CNPJ não pode ser vazio' }, } }, company_name: { validators: { notEmpty: { message: 'O campo razão social não pode ser vazio' }, } }, state_inscription: { validators: { notEmpty: { message: 'O campo inscrição estadual não pode ser vazio' }, } }, password: { validators: { notEmpty: { message: 'O campo senha não pode ser vazio' }, } }, }; } function validationsCustomerAddressInformationFields() { return { zip_code: { validators: { zipCode: { country: 'BR', message: 'O campo código postal precisa ser válido' }, notEmpty: { message: 'O campo código postal não pode ser vazio' } } }, neighborhood: { validators: { stringLength: { max: 100, message: 'O campo de bairro não pode ter mais que 100 caracteres' }, notEmpty: { message: 'O campo de bairro não pode ser vazio' } } }, street: { validators: { stringLength: { max: 100, message: 'O campo de endereço não pode ter mais que 100 caracteres' }, notEmpty: { message: 'O campo de endereço não pode ser vazio' } } }, number: { validators: { numeric: { message: 'O campo número deve possuir apenas caracteres numéricos', }, notEmpty: { message: 'O campo número não pode ser vazio' } } }, }; } function showErrorMessages(data) { const messages = data.fv.getMessages(data.element); for (let i in messages) { $(`.error-message-field-label-${data.field}`).addClass('text-danger'); $(`input[name='${data.field}']`).addClass('border border-danger'); } } function removeErrorClasses(data) { const input = $('input[name="'+ data.field +'"]'); input.siblings('.error-message-field').text(''); input.siblings('.field-label').removeClass('text-danger'); input.removeClass('border border-danger'); } function removePressButtonEnter(formValidationElement) { formValidationElement.on('keyup keypress', function(e) { const keyCode = e.keyCode || e.which; if (keyCode === 13) { e.preventDefault(); return false; } }); } function formButton(selector) { return { selector: selector, disabled: 'disabled' }; }