1.1.0 • Published 8 years ago

vue-form-verify v1.1.0

Weekly downloads
2
License
ISC
Repository
github
Last release
8 years ago

vue-form-verify

Demo

Installation

npm i vue-form-verify --save

Quick Start

App.vue

<template>
    <div>
        <v-form :validate="validate" @submit="handleSubmit">
            <template scope="api">
                <v-form-control field="email" />
                <v-form-control field="name" />

                <button type="submit" :disabled="api.isInvalid">
                    submit
                </button>
            </template>
        </v-form>
    </div>
</template>

<script>
    import { vForm, vFormControl } from 'vue-form-verify';

    function validate(values) {
        return {
            email: /@/.test(values.email)
                ? undefined
                : 'Email is required',
            name: values.name && values.name.length
                ? undefined
                : 'Name is required',
        }
    }

    export default {
        name: 'app',
        components: {
            vForm,
            vFormControl,
        },
        methods: {
            validate,
            handleSubmit(values) {
                console.log('submited: ', values)
            }
        }
    }
</script>

API

form apidescription
isValidreturn true if no errors
isInvalidreturn true if has errors
getValue(field)return value by field
getValues()return all values
getError(field)return error by field
getErrors()return all errors
getTouched(field)return touched flag by field
setTouched(field, touched)change touched flag of field
setValue(field, newValue)set new value for field
formControl apidescription
getValue()return value
getError()return error
getTouched()return touched flag
setTouched(touched)change touched flag
setValue(newValue)set new value

Custom input

<template>
    <v-form-control :field="field">
        <template scope="api">
            <my-custom-input
                :type="type"
                :value="api.getValue()" 
                :name="field"
                @input="api.setValue" 
                @blur="api.setTouched" 
                :readonly="api.isReadonly() || readonly" 
                :disabled="api.isDisabled() || disabled" 
                :maxlength="maxlength" 
                :error="api.getTouched() ? api.getError() : undefined" 
                :placeholder="placeholder" 
            />
        </template>
    </v-form-control>
</template>
<script>
import { vFormControl } from 'vue-form-verify';

export default {
    name: 'custom-form-control',
    props: {
        disabled: Boolean,
        readonly: Boolean,
        placeholder: String,
        maxlength: [String, Number],
        type: String,
        field: {
            type: String,
            required: true,
        }
    },
    components: {
        vFormControl,
    },
}
</script>
<v-form :validate="validate" @submit="handleSubmit">
    <template scope="api">
        <custom-form-control field="email" />
        <custom-form-control field="name" />

        <button type="submit" :disabled="api.isInvalid">
            submit
        </button>
    </template>
</v-form>
1.1.0

8 years ago

1.0.11

8 years ago

1.0.10

8 years ago

1.0.9

8 years ago

1.0.8

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago