a { } after a { }

網頁前端技術的紀錄筆記,提供 CSS 、JS 語法和小技巧。

  • Home
    • Social
    • Features
      • Lifestyle
        • Category 1
        • Category 2
        • Category 3
        • Category 4
        • Category 5
    • Sub Menu 3
    • Sub Menu 4

千分位與 $ 符號

因為網路上可以找到很多一樣的解決方式,加上這篇文章的主題也不是要記錄怎麼在數字中插入千分位和 $ 符號,所以就不囉嗦了。直接附上程式碼:

vee-validate 是 Vue 的套件。這個套件提供了一些 vue 指令讓我們可以快速的為網站裡的表單做驗證,並且提供回饋訊息。

安裝

     npm install vee-validate --save
再於 main.js (Vue cli 中的 Vue 注入點),將這個套件匯入專案中:

@import VeeValidate* from 'vee-validate' 
//因為是在node module 中的套件,所以只需要套件名稱就可以了

Vue.use(VeeValidate);
//名稱對應到上述 *,也就是我們為匯入的套件賦予的名稱

使用到 input


  • 這個套件是以 v-validate 和 input 標籤裡的 name 屬性裡的值做對應。有這個 name 的值,vee-validate 才知道要去哪個 input 做驗證。
    <input v-validate="email" name="email">
    <span v-if="errors.has('email')"></span>
  • errors.has(‘email’):
    • 判斷含 name=“email” 這個 input 是否有錯誤。
    • 回傳 true / false。有錯誤回傳 true,否則 false。

針對常見表單輸入的回饋

  • errors.first(‘email’) 驗證 email 時,回傳相關的驗證錯誤訊息。
這部分有點像是針對errors 給我們的更詳細的查閱。

vee-validate 的運作方式

vee-validate 透過 v-validate 和 name 做表單元素的分組和驗證;然後再由 error 這個物件告知使用者每一個綁定 v-validate 的 input 於驗證後產生的相關訊息。errors.has() 讓我們查閱 vee-validate 驗證後錯誤的 input 有哪些。例如, errors.has('email') 就是在查閱這個驗證錯誤的表單有沒有包含 email 這一項。
由這樣的使用方式可以得知,vee-validate 的 errors 運作方式有點像是 JS 的事件綁定。我們在事件綁定中,在 event handler 裡代入一個 e 或 event 的參數,就可以查閱這個事件被觸發時的各種相關訊息。
這邊也是相當類似的。透過 errors 這個物件,我們也可以查閱 vee-validate 在做過驗證之後,產生和驗證錯誤的表單的相關訊息。
而,errors.first('') 則是這個套件提供給我們使用的客戶端回饋訊息。(也就是在表單驗證錯誤時,給使用者看的訊息)
是給使用者的回饋訊息,以 Vue 的 {{ }} 方法顯示到網頁上。
    <input name='email' v-validate="'required'">
    <span v-if="error.has('email')">{{ errors.first('email') }}</span>
以 email 為例,使用first() 這個方法,vee-validate 就會針對 email 做驗證。除了一般的告知使用者 email 為必填,也可以回饋詳細的錯誤訊息,例如,email 的格式不對等等。
PS. 在 errors 中代入的參數都是 input 中 name 標籤裡的值,這部分要特別注意。

vee-validate 小結

  1. input 需要有 name 做為表單的驗證依據,name、email、tel 等等。
  2. v-validate ="‘required’" (字串裡面有字串) 標記為需要驗證的表單內容
  3. errors.has(’…’) 驗證這個表單是否錯誤,錯誤回傳 true
  4. errors.first(’…’) 為套件給我們的回饋訊息,以 {{ }} 的方式渲染給使用者看

requried 屬性

在上述我們只是做好表單的驗證功能,但是並不會阻止瀏覽器送出表單。input 只認得 HTML 標籤的 required 屬性:
    <input...required>
如果要做到 submit 之前,做好套件的驗證,再交由瀏覽器提出表單,就需要從 method 做處理,讓表單驗證成功之後,再向遠端資料庫送出表單內容。這時候就不需要使用 required 標籤,就可以讓顧客再填寫必須欄位後,再送出表單了。

this.$validator.validate().then(valid => {
            // 提交表單的 ajax 行為
      });

送出訂單、結帳

為什麼要透過 Vue 來控制 Bootstrap 的 JavaScript 元件呢?如果有寫過 Bootstrap,在透過 Bootstrap 開發網頁的過程中,不寫任何 JavaScript 的程式碼,相關的元件還是會有反應。


這篇文章翻譯自這篇文章。從文章看起來似乎是使用者針對 Bootstrap 未來更新的推測,所以最後還是得以 Bootstrap 的官方文件為準。希望不會有奇怪的英文化中文,也請多多指教。

較新的文章 首頁

ABOUT ME

嗨,我是Miya!正在前往前端工程師的路上,希望自己能用簡單的語言把自己學到的一切分享出去!

POPULAR POSTS

Categories

  • 地圖應用 2
  • 前端初學 1
  • 寫給所有人的運算思維入門 1
  • 翻譯 1
  • JS開發日記 2
  • leaflet 2
  • Vue 2
  • Vue 導航守衛 1
  • Vue cli 1

搜尋此網誌

技術提供:Blogger.

網誌存檔

  • 5月 2020 (1)
  • 4月 2020 (3)
  • 3月 2020 (5)

Label

  • 地圖應用
  • 前端初學
  • 寫給所有人的運算思維入門
  • 翻譯
  • JS開發日記
  • leaflet
  • Vue
  • Vue 導航守衛
  • Vue cli

總網頁瀏覽量

Designed by OddThemes | Distributed by Gooyaabi Templates