jQuery Validation , 自訂錯誤訊息位置
有時候想要透過 jQuery Validation 做簡單的做表單驗證,但是偏偏錯誤訊息顯示在輸入框位置的下方導致HTML排版跑板了
官方文件中提供的方法可以解決這個問題
參考連結 : https://jqueryvalidation.org/documentation/
舉例說明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<div class="form-question"> <h3>1. 請問您現在的居住地區是?<span></span></span></h3> <div class="inputGroup"> <label class="container">北部(雙北/基隆/桃竹苗) <input type="radio" name="q_1[]" value="1" class="required"> <span class="checkmark"></span> </label> <label class="container">中部(中彰投/雲林) <input type="radio" name="q_1[]" value="2" class="required"> <span class="checkmark"></span> </label> <label class="container">南部(嘉南/高屏) <input type="radio" name="q_1[]" value="3" class="required"> <span class="checkmark"></span> </label> <label class="container">東部(宜/花/東) <input type="radio" name="q_1[]" value="4" class="required"> <span class="checkmark"></span> </label> <label class="container">離島(澎湖/金/馬) <input type="radio" name="q_1[]" value="5" class="required"> <span class="checkmark"></span> </label> </div> </div> |
假設我們有一段表單HTML如上,此時想要顯示必填錯誤訊息在問題之後而非選項之後,下列方法可以簡單做到
首先,在HTML上增加一個<sapn></span>,用來顯示必填錯誤訊息
1 2 3 4 |
<label class="container">北部(雙北/基隆/桃竹苗) <span class="display_error"></span> <input type="radio" name="q_1[]" value="1" class="required"> <span class="checkmark"></span> </label> |
接著在script的地方加入參數
1 2 3 4 5 6 7 8 9 10 |
$("#form").validate({ errorPlacement: function(error, element) { var placement = $(element).data('error'); if (placement) { $(placement).append(error) } else { element.parents(".form-question").first().find('.display_error').append(error); } } }); |
其中,error是錯誤訊息的dom元件,element則是觸發必填錯誤的元件
所以我們依照HTML結構找到觸發錯誤的元件網上層找到.display_error span,將錯誤訊息append在這個span中,就完成啦~
其他方式可以參考官網文件