number-validate.vue 1.2 KB

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