number-validate.vue 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <template>
  2. <el-form ref="formRef" :model="numberValidateForm" label-width="100px" class="demo-ruleForm">
  3. <el-form-item
  4. label="age"
  5. prop="age"
  6. :rules="[
  7. { required: true, message: 'age is required' },
  8. { type: 'number', message: 'age must be a number' },
  9. ]"
  10. >
  11. <el-input v-model.number="numberValidateForm.age" type="text" autocomplete="off" />
  12. </el-form-item>
  13. <el-form-item>
  14. <el-button type="primary" @click="submitForm(formRef)">Submit</el-button>
  15. <el-button @click="resetForm(formRef)">Reset</el-button>
  16. </el-form-item>
  17. </el-form>
  18. </template>
  19. <script lang="ts" setup>
  20. import { reactive, ref } from 'vue'
  21. import type { FormInstance } from 'element-plus'
  22. const formRef = ref<FormInstance>()
  23. const numberValidateForm = reactive({
  24. age: '',
  25. })
  26. const submitForm = (formEl: FormInstance | undefined) => {
  27. if (!formEl) return
  28. formEl.validate(valid => {
  29. if (valid) {
  30. console.log('submit!')
  31. } else {
  32. console.log('error submit!')
  33. return false
  34. }
  35. })
  36. }
  37. const resetForm = (formEl: FormInstance | undefined) => {
  38. if (!formEl) return
  39. formEl.resetFields()
  40. }
  41. </script>