2017年9月28日

Bootstrap 表單驗證外掛 Validator,美觀輕鬆好上手

Bootstrap 表單驗證外掛 Validator,美觀輕鬆好上手

Wayne Fu 0 A+

bootstrap-validator-Bootstrap 表單驗證外掛 Validator,美觀輕鬆好上手
網頁表單在送出前,所有欄位都需進行防呆或驗證資料格式。如果每次製作不同的表單,都要重新寫一次 JS 來處理這些事,還挺麻煩的。

大致找了一下,「驗證表單」功能的外掛還不少,而且功能也很強。不過各個官網逛過一圈後,幾乎都被我刷掉了,要嘛功能太多、說明書太複雜,要嘛官網無法立即看到 DEMO 效果,學習起來會很花時間。

最後比較中意的這個還滿特別的,是基於 Bootstrap 所開發的外掛 Validator,以下會說明雀屏中選的原因。



一、Bootstrap Validator


1. 簡介


雖然這不是最強大的「表單驗證」外掛,但我認為它的 CP 值比較高,因為:

1. 官網的設計有從使用者角度出發,一進入網頁就看到 DEMO 效果,重要選單也做成浮動功能,排版清楚,適合快速上手及學習。

2. API 功能沒有非常多,但重要、常見的功能都有,這樣說明書找起來也不會太花時間。

3. 雖然需要先安裝「Bootstrap」,不過 Bootstrap 已經是非常知名、多數網頁都會使用的框架,而且做出來的表單也比較美觀,因此我認為比其他外掛值得採用。

4. 這個外掛有 CDN 支援,因此不用另外尋找網頁空間

5. 其他外掛需要用 js 設定複雜的參數,這個外掛幾乎不需用 js 設定,不必學習 js 語法,多數常用的設定用 HTML 就可搞定,相對之下單純許多。


2. 功能

bootstrap-validator-1-Bootstrap 表單驗證外掛 Validator,美觀輕鬆好上手

上圖是這個外掛的表單驗證效果,大致有這些優點:

  • 紅圓圈處的打叉圖案,是 Bootstrap 預設的圖示,驗證失敗時可顯示此效果。
  • 這個外掛的神奇之處,在於某些驗證失敗的字串,可自動顯示對應語系的文字。例如圖中的 "請填寫這個欄位",這是未設定過就顯示的預設中文字串。
  • 每個欄位可自行設定各種驗證失敗的字串。
  • 「輸入密碼」的下一欄,通常會設計「確認密碼」的欄位,這個外掛預設就有比對密碼字串的功能。
  • 所有必要欄位尚未填寫、勾選之前,圖中紅框處的「提交按鈕」(Submit)是不能按的,這是少見的防呆好設計



二、基本安裝方式


1. CDN 連結


所有的外掛版本、連結,請參照以上 CDN 網址。

網頁記得先引用 jQuery 以及 Bootstrap 的 CSS 連結。


2. 基本安裝

以下是安裝範例:

<!--引用 jQuery + Bootstrap-->
<script src='//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js'></script>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"></link>

<!--表單內容-->
<form id="myForm" role="form" data-toggle="validator">
...
</form>

<!--引用 Validator-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js"></script>

<!--執行 Validator-->
<script>
$("#myForm").validator();
</script>

官網表示有兩種方式可啟動驗證表單程式:

  • 為 form 標籤加上 data-toggle="validator" 屬性即可
  • 或者是為 form 設定 ID(例如 myForm),接者用 js 執行 $("#myForm").validator();



三、使用說明


以下說明製作表單 FORM 標籤時的注意事項,多數設定只要寫好 HTML 就能看到效果。

1. 表單 HTML

需要驗證的 Input 輸入欄位,支援以下屬性:

  • type="email"
  • type="url"
  • type="number" (可另外設定位數)
  • text, search, tel, url, email 這幾種形式,可設定 Regex 正規表示式
  • required


2. 顯示錯誤訊息

當驗證失敗時,需要有一個區塊顯示錯誤訊息。此區塊的製作要點如下:

  • 必須放在 .form-group 的容器之間,請參考「Bootstrap」的說明書內容,瞭解什麼是 form-group。
  • 建議放在 Input 標籤的後一行
  • 要放在 Input 前一行當然也可以,但錯誤訊息出現在前面怪怪的

此區塊的完整 HTML 碼如下:

<div class="help-block with-errors"></div>


3. 其他常見功能

A. 確認密碼:

原本輸入密碼的 Input 欄位,請設定 ID(例如 inputPW),需要使用者重複輸入確認密碼的 Input 欄位,請設定屬性:

data-match="#inputPW"

同時這個 Input 欄位可設定顯示錯誤訊息:

data-match-error="糟了!密碼並未吻合,請重新輸入~"

B. 限制字數:

例如 Input 密碼欄位希望至少輸入 6 個字元的話,可以設定屬性:

data-minlength="6"

C. 使用正規表示式:

例如希望密碼只能使用英(或)數、最少 6 位數,可這樣設定:

pattern="^[a-zA-Z0-9]{6,}$"

那麼密碼不符合規定時就會顯示錯誤訊息。而想設定此時的錯誤訊息,方式如下:

data-pattern-error="請輸入英、數組合的密碼至少 6 個位元"

D. 預設錯誤訊息:

想要改寫系統預設的錯誤訊息,設定方式如下:

data-error="請填寫此欄位"


四、完整範例


以下是一個簡單的完整範例,所有 HTML 部分的語法、參數,上面都有說明:

<!--引用 jQuery + Bootstrap-->
<script src='//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js'></script>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"></link>

<!--表單內容-->
<form id="register_form" role="form" data-toggle="validator">
<div class="form-group">
<input id="inputName" name="Name" type="text" class="form-control" placeholder="姓名" required="required">
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<input id="inputEmail" name="Email" class="form-control" type="email" placeholder="電子郵件地址" data-error="郵件格式錯誤" required="required">
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<input id="inputPassword" name="Password" class="form-control" type="password" placeholder="設定密碼" pattern="^(?=.*\d)(?=.*[a-zA-Z]).{6,}$" data-error="請輸入含有英文字母及數字的密碼,至少六個字元。" required="required">
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<input id="inputConfirmPassword" name="ConfirmPassword" class="form-control" type="password" placeholder="確認密碼" data-match="#inputPassword" data-error="密碼未吻合!" required="required">
<div class="help-block with-errors"></div>
</div>
<input type="submit" value="註冊" class="btn btn-danger btn-block" />
</form>

<!--引用 Validator-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js"></script>

<!--執行 Validator-->
<script>
$('#register_form').validator().on('submit', function(e) {
if (e.isDefaultPrevented()) { // 未驗證通過 則不處理
return;
} else { // 通过后,送出表单
alert("已送出表單");
}
e.preventDefault(); // 防止原始 form 提交表单
});
</script>


執行效果如同以下的表單,可自行輸入、測試各種錯誤狀態。所有欄位都填寫正確後,才能送出表單:




更多 Bootstrap 相關文章:


更多 jQuery 相關文章:
0 0
如這篇文章對你有幫助,歡迎「分享」到 FB、「追蹤」粉絲團、「訂閱」最新文章

2 則留言:

  1. 有check日期是否正確的方式嗎?

    回覆刪除
    回覆
    1. 可以直接安裝日期時間範圍選擇器 Date Range Picker 外掛:https://www.wfublog.com/2017/08/jquery-date-range-picker-bootstrap.html

      刪除

張貼留言注意事項:

◎ 勾選「通知我」可收到後續回覆的mail!
◎ 請在相關文章留言,與文章無關的主題可至「Blogger 社團」提問。
◎ 請避免使用 Safari 瀏覽器,否則無法登入 Google 帳號留言(只能匿名留言)!
◎ 提問若無法提供足夠的資訊供判斷,可能會被無視。建議先參考這篇「Blogger 提問技巧及注意事項」。
◎ CSS 相關問題非免費諮詢,建議使用「Chrome 開發人員工具」尋找答案。
◎ 手機版相關問題請參考「Blogger 行動版範本的特質」→「三、行動版範本不一定能執行網頁版工具」;或參考「Blogger 行動版範本修改技巧 」,或本站 Blogger 行動版標籤相關文章。
◎ 非官方範本問題、或貴站為商業網站,請參考「Blogger 免費諮詢 + 付費諮詢
◎ 若是使用官方 RWD 範本,請參考「Blogger 推出全新自適應 RWD 官方範本及佈景主題」→ 不建議對範本進行修改!
◎ 若留言要輸入語法,"<"、">"這兩個符號請用其他符號代替,否則語法會消失!
◎ 為了過濾垃圾留言,所有留言不會即時發佈,請稍待片刻。
◎ 本站「已關閉自刪留言功能」。

TOP