<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      ant-design-vue 登錄表單校驗(yàn)

      最近剛剛上手了 Vue3antdv ui框架,來做個(gè)簡單的登錄校驗(yàn)練練手??

      安裝 antdv 依賴

      npm install ant-design-vue --save
      

      main.ts/js 中注冊

      // main.ts
      import { createApp } from 'vue'
      import App from './App.vue'
      import 'ant-design-vue/dist/antd.css'
      import Antd from 'ant-design-vue'
      
      createApp(App).use(Antd).mount('#app')
      

      編寫登錄頁面

      登錄界面的具體代碼在這里,博客中只展示重要的邏輯和樣式。

      // LoginPage.vue
      <template>
        <a-form>
          <a-form-item>
            <a-input placeholder="請輸入用戶名"></a-input>
          </a-form-item>
          <a-form-item>
            <a-input-password placeholder="請輸入密碼"></a-input-password>
          </a-form-item>
          <a-form-item>
            <a-button>登錄</a-button>
          </a-form-item>
        </a-form>
      </template>
      

      基本的樣式只有上面的幾行代碼,后續(xù)的邏輯都是關(guān)于表單驗(yàn)證的。下面來寫一下 js 代碼:

      <script lang="ts" setup>
      import {FormInstance} from "ant-design-vue";
      import {reactive, ref} from "vue";
      import {Rule} from "ant-design-vue/es/form";
      
      
      const formRef = ref<FormInstance>(); // 通過為 form 加上 ref 屬性可以獲取表單實(shí)例
      
      // 定義表單域
      const formState = reactive({
        userName: '',
        passWord: ''
      });
      
      // 用戶名校驗(yàn)規(guī)則
      const userNameCheck = async (_rule: Rule, value: string) => {
        if (!value) {
          return Promise.reject('用戶名不能為空')
        } else if (value.length <= 2) {
          return Promise.reject('用戶名長度不能小于兩個(gè)字符')
        } else {
          return Promise.resolve()
        }
      }
      
      // 密碼校驗(yàn)規(guī)則
      const passWordCheck = async (_rule: Rule, value: string) => {
        if (!value) {
          return Promise.reject('密碼不能為空')
        } else if (value.length < 5) {
          return Promise.reject('密碼長度不能小于5個(gè)字符')
        } else {
          return Promise.resolve()
        }
      }
      
      </script>
      

      寫好基本的校驗(yàn)規(guī)則后,就可以將相關(guān)的內(nèi)容加到 <template> 中了:

      <a-form :model="formState" ref="formRef" @finish="jump">
        <!-- @finish="jump" 下面的js代碼會提到 -->
        <a-form-item :rules="[{validator: userNameCheck, trigger: 'blur'}]" name="userName">
          <!-- form-item 必須加上 name 屬性,且需要和 formState 中的屬性同名 -->
          <a-input
              placeholder="請輸入用戶名"
              v-model:value="formState.userName"
          ></a-input>
        </a-form-item>
        <a-form-item name="passWord" :rules="[{validator: passWordCheck, trigger: 'blur'}]">
          <!-- trigger=blur 會在輸入框失焦時(shí)觸發(fā)表單校驗(yàn),=change會在點(diǎn)擊登錄時(shí)觸發(fā)校驗(yàn) -->
          <a-input-password placeholder="請輸入密碼" v-model:value="formState.passWord"></a-input-password>
        </a-form-item>
        <a-form-item>
          <a-button type="primary" html-type="submit">登錄</a-button>
          <!-- 只有填寫了 html-type="submit" 才可以使按鈕具有表單校驗(yàn)的功能,才可以使 @finsih屬性生效 -->
        </a-form-item>
      </a-form>
      

      可以看到上面的 <a-form> 有一個(gè) @finish 的屬性,其值為一個(gè)名為 「jump」的函數(shù),作用是 在點(diǎn)擊按鈕后,如果校驗(yàn)成功則進(jìn)行路由跳轉(zhuǎn)

      function jump() {
        router.push('/');
      }
      

      測試

      在線瀏覽頁面

      在未滿足校驗(yàn)條件點(diǎn)擊提交 或者輸入框失去焦點(diǎn)后,會觸發(fā)校驗(yàn)失敗的提示:

      如果填寫的內(nèi)容滿足要求,則會在點(diǎn)擊按鈕后執(zhí)行 路由跳轉(zhuǎn)

      posted @ 2022-09-27 13:56  HuStoking  閱讀(692)  評論(1)    收藏  舉報(bào)
      主站蜘蛛池模板: 午夜福利国产精品视频| 99久久国产成人免费网站| 精品一区二区三区在线观看l| 黄色A级国产免费大片视频| 亚洲欧美综合精品成人网站| 国产亚洲tv在线观看| 九色综合国产一区二区三区| 快好爽射给我视频| 精品国产精品国产偷麻豆| 最新亚洲av日韩av二区| 国产精品国产自产拍高清| 少妇办公室好紧好爽再浪一点 | 少妇被粗大的猛烈进出69影院一| 久久久久人妻精品一区三寸 | 9久9久热精品视频在线观看| 中文无码日韩欧免费视频| 资源在线观看视频一区二区| 亚洲人成人无码www| 日韩午夜福利片段在线观看| 久久综合亚洲色一区二区三区| 亚洲国产欧美一区二区好看电影| 三级4级全黄60分钟| 少妇高潮太爽了在线视频| 日韩人妻少妇一区二区三区| 精品国产午夜福利在线观看 | 四虎影视一区二区精品| 亚洲精品一区二区在线播| 国产99视频精品免费视频36| 717午夜伦伦电影理论片| 中文字幕国产日韩精品| 亚洲国产欧美在线人成| 国产亚洲av人片在线播放| 亚洲AV日韩AV综合在线观看| 天堂av最新版中文在线| 国产午夜福利免费入口| 亚洲国产精品一二三区| 美女裸体黄网站18禁止免费下载| 亚洲肥熟女一区二区三区| 亚洲高清aⅴ日本欧美视频| 人妻系列无码专区69影院| 午夜通通国产精品福利|