0.0.3 • Published 3 years ago

validate-component-vue v0.0.3

Weekly downloads
-
License
-
Repository
github
Last release
3 years ago

validate-component-vue

a vue form validate component library

install

npm install validate-component-vue@latest

How to use

import { createApp } from "vue";
import ValidateComponent from "validate-component-vue";
import App from "./App.vue";

createApp(App).use(ValidateComponent).mount("#app");
<script lang="ts" setup>
import { reactive, ref } from "vue";
import VInput from "./VInput.vue";

const formRef = ref();

const model = reactive({
  name: "",
  sex: "",
});

const rules = {
  name: [
    {
      required: true,
      message: "name not be empty",
    },
  ],
  sex: [
    {
      required: true,
      message: "sex not be empty",
    },
  ],
};

function validate() {
  formRef.value
    .validate()
    .then((res) => {
      console.log(res);
    })
    .catch((res) => {
      console.log("error", res);
    });
}
</script>

<template>
  <validate-form
    ref="formRef"
    :model="model"
    :rules="rules"
    @submit.prevent
    class="space-y-4"
  >
    <validate-form-item name="name" component="div" class="form-item">
      <template #default="{ validate }">
        <label for="">name:</label>
        <v-input
          type="text"
          v-model:value="model.name"
          placeholder="please enter your name"
        />
        <div
          v-if="validate.hasError"
          class="text-sm"
          :class="{
            'text-red': validate.hasError,
          }"
        >
          {{ validate.errors[0].message }}
        </div>
      </template>
    </validate-form-item>
    <validate-form-item name="sex" component="div" class="form-item">
      <template #default="{ validate }">
        <label for="">sex:</label>
        <v-input
          type="text"
          v-model:value="model.sex"
          placeholder="please enter your sex"
        />
        <div
          v-if="validate.hasError"
          class="text-sm"
          :class="{
            'text-red': validate.hasError,
          }"
        >
          {{ validate.errors[0].message }}
        </div>
      </template>
    </validate-form-item>
    <button @click="validate">validate</button>
  </validate-form>
  <pre class="bg-gray-100 p10 b-rd-2">{{ JSON.stringify(model, null, 2) }}</pre>
</template>

rule options see async-validator

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago

0.0.0

3 years ago