diff --git a/ayanova/src/api/gzform.js b/ayanova/src/api/gzform.js index f7cc8a66..73f83c03 100644 --- a/ayanova/src/api/gzform.js +++ b/ayanova/src/api/gzform.js @@ -365,6 +365,38 @@ export default { return err; }, /////////////////////////////// + // EMAIL IS VALID-ish + //https://tylermcginnis.com/validate-email-address-javascript/ + emailValid(vm, ref) { + if (vm.formState.loading) { + return true; + } + let ctrl = getControl(vm, ref); + if (typeof ctrl == "undefined") { + return true; + } + + //DEBUG + //logControl("emailValid", ctrl, ref); + + let value = getControlValue(ctrl); + if (isEmpty(value)) { + return true; + } + + if (/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value) == true) { + return true; + } + + let err = vm.$ay.t("ErrorAPI2203"); //"Invalid value" + //Update the form status + this.setFormState({ + vm: vm, + valid: false + }); + return err; + }, + /////////////////////////////// // USER REQUIRED FIELDS // (Fields defined by AyaNova users as required on form that are not stock required already) // (was using this in testing on widget form notes field but not sure where else it's applicable) diff --git a/ayanova/src/views/adm-license.vue b/ayanova/src/views/adm-license.vue index 7182cd54..a5351850 100644 --- a/ayanova/src/views/adm-license.vue +++ b/ayanova/src/views/adm-license.vue @@ -57,7 +57,10 @@ v-model="request.Email" :label="$ay.t('LicenseEmail')" type="email" - :rules="[form().required(this, 'requestemail')]" + :rules="[ + form().required(this, 'requestemail'), + form().emailValid(this, 'requestemail') + ]" :error-messages=" form().serverErrors(this, 'requestemail') "