Ir para conteúdo

POWERED BY:

submic

Members
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que submic postou

  1. submic

    Validação cadastro em Vue js

    Boa tarde pessoal, qual é o erro no campo CPF? <template> <v-container fluid fill-height> <v-layout align-center justify-center row fill-height wrap> <v-flex xs10 sm7 md5 lg3 xl2> <v-form data-vv-scope="form1" :model="form1" lazy-validation @submit.prevent="submitForm('form1')" autocomplete="off" method="post" > <v-card class="elevation-18 my-4"> <v-toolbar flat color="transparent"> <v-toolbar-title>{{ $t('register_head') }}</v-toolbar-title> </v-toolbar> <v-card-text> <v-alert :value="form1.has_error && !form1.success" type="error" class="mb-4" > <span v-if="form1.error == 'registration_validation_error'">{{ $t('server_error') }}</span> <span v-else-if="form1.error == 'limitation_reached'">{{ $t('campaign_customer_sign_up_limit') }}</span> <span v-else>{{ $t('correct_errors') }}</span> </v-alert> <v-text-field v-model="form1.name" data-vv-name="name" v-validate="'required|min:2|max:32'" :label="$t('enter_your_name')" :data-vv-as="$t('name')" :error-messages="errors.collect('form1.name')" required prepend-inner-icon="person" ></v-text-field> <v-text-field type="email" v-model="form1.email" data-vv-name="email" v-validate="'required|max:64|email'" :label="$t('enter_email')" :data-vv-as="$t('email_address')" :error-messages="errors.collect('form1.email')" required prepend-inner-icon="email" ></v-text-field> <v-text-field type="number" v-model="form1.cpf" data-vv-name="cpf" v-validate="'required|min:11|max:11'" :label="$t('digite_cpf')" :data-vv-as="$t('cpf_numero')" :error-messages="errors.collect('form1.cpf')" required prepend-inner-icon="person" ></v-text-field> <v-text-field v-model="form1.password" data-vv-name="password" v-validate="'required|min:8|max:24'" :label="$t('enter_password')" :data-vv-as="$t('password')" :error-messages="errors.collect('form1.password')" :type="show_password ? 'text' : 'password'" :append-icon="show_password ? 'visibility' : 'visibility_off'" @click:append="show_password = !show_password" required prepend-inner-icon="lock" ></v-text-field> <v-checkbox type="checkbox" v-model="form1.terms" data-vv-name="terms" v-validate="'required'" :label="$t('agree_to_terms')" :data-vv-as="$t('terms')" :error-messages="errors.collect('form1.terms')" value="1" required > <template v-slot:label> <div> {{ $t('i_agree_to') }} <v-tooltip bottom> <template v-slot:activator="{ on }"> <a target="_blank" :href="$router.resolve({name: 'legal'}).href" @click.stop v-on="on" > {{ $t('terms_and_policy').toLowerCase() }} </a> </template> {{ $t('opens_in_new_window') }} </v-tooltip> </div> </template> </v-checkbox> </v-card-text> <v-card-actions> <v-btn color="primary" large block :loading="form1.loading" :disabled="form1.loading" type="submit" class="ml-0">{{ $t('create_account') }}</v-btn> </v-card-actions> </v-card> <v-btn @click="toLogin" :disabled="form1.loading" large block text class="no-caps"><v-icon size="16" class="mr-1">arrow_back</v-icon> {{ $t('back_to_login') }}</v-btn> </v-form> </v-flex> </v-layout> </v-container> </template> <script> export default { $_veeValidate: { validator: 'new' }, data() { return { show_password: false, form1: { loading: false, terms: '', name: '', email: '', password: '', locale: '', timezone: '', has_error: false, error: '', errors: {}, success: false } } }, created () { this.form1.locale = Intl.DateTimeFormat().resolvedOptions().locale || null this.form1.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || null }, computed: { campaign () { return this.$store.state.app.campaign } }, methods: { toLogin() { this.$router.push({name: 'login'}) }, submitForm(formName) { this[formName].has_error = false this[formName].loading = true this.$validator.validateAll(formName).then((valid) => { if (valid) { this.register(formName); } else { this[formName].loading = false return false; } }); }, register(formName) { var app = this[formName] this.$auth.register({ data: { language: this.$i18n.locale, uuid: this.$store.state.app.campaign.uuid, name: app.name, email: app.email, password: app.password, locale: app.locale, timezone: app.timezone, terms: app.terms }, success: function () { app.success = true this.$auth.login({ rememberMe: true, fetchUser: true, params: { locale: this.$i18n.locale, uuid: this.$store.state.app.campaign.uuid, email: app.email, password: app.password, remember: true }, success () { // Handle redirection this.$router.push({name: 'points'}) } }) }, error: function (res) { app.has_error = true app.error = res.response.data.error app.errors = res.response.data.errors || {} if (app.error == 'limitation_reached') { app.name = '' app.email = '' app.password = '' } for (let field in app.errors) { this.$validator.errors.add({ field: formName + '.' + field, msg: app.errors[field][0] }) } app.loading = false } }) } }, } </script>
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.