您好,登錄后才能下訂單哦!
本篇內容介紹了“BootstrapValidator表單驗證超詳要如何做”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
一、引入 js 和 css 文件
在我們開始項目的時候我們需要導入下面這兩個文件:bootstrapValidator.js
、bootstrapValidator.css
。我們需要在有jquery和bootstrap的頁面里引入。
二、編寫html
我們在項目中的 html文件中編寫 form
表單,添加表單控件,如果我們想對某一字段添加驗證規則的話,則默認需要以<div class="form-group"></div>
包裹。內部的話則是<input class="form-control"/>
標簽必須要有name
屬性,里面的值用來匹配字段。代碼如下所示:
<form class="form-horizontal">
<div class="form-group">
<label class="col-lg-3 control-label">Username</label>
<div class="col-lg-9">
<input type="text" class="form-control" name="username" />
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label">Email address</label>
<div class="col-lg-9">
<input type="text" class="form-control" name="email" />
</div>
</div>
</form>
三、添加規則驗證
1、在html標簽中添加,代碼如下所示:
<div class="form-group">
<label class="col-lg-3 control-label">Username</label>
<div class="col-lg-5">
<input type="text" class="form-control" name="username"
data-bv-message="The username is not valid"
required
data-bv-notempty-message="The username is required and cannot be empty"
pattern="[a-zA-Z0-9]+"
data-bv-regexp-message="The username can only consist of alphabetical, number" />
</div>
</div>
2、添加 js 文件,代碼如下:
$(function () {
$("#form-test").bootstrapValidator({
live: 'disabled',//驗證時機,enabled是內容有變化就驗證(默認),disabled和submitted是提交再驗證
excluded: [':disabled', ':hidden', ':not(:visible)'],//排除無需驗證的控件,比如被禁用的或者被隱藏的
submitButtons: '#btn-test',//指定提交按鈕,如果驗證失敗則變成disabled,但我沒試成功,反而加了這句話非submit按鈕也會提交到action指定頁面
message: '通用的驗證失敗消息',//好像從來沒出現過
feedbackIcons: {//根據驗證結果顯示的各種圖標
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
text: {
validators: {
notEmpty: {//檢測非空,radio也可用
message: '文本框必須輸入'
},
stringLength: {//檢測長度
min: 6,
max: 30,
message: '長度必須在6-30之間'
},
regexp: {//正則驗證
regexp: /^[a-zA-Z0-9_\.]+$/,
message: '所輸入的字符不符要求'
},
remote: {//將內容發送至指定頁面驗證,返回驗證結果,比如查詢用戶名是否存在
url: '指定頁面',
message: 'The username is not available'
},
different: {//與指定文本框比較內容相同
field: '指定文本框name',
message: '不能與指定文本框內容相同'
},
emailAddress: {//驗證email地址
message: '不是正確的email地址'
},
identical: {//與指定控件內容比較是否相同,比如兩次密碼不一致
field: 'confirmPassword',//指定控件name
message: '輸入的內容不一致'
},
date: {//驗證指定的日期格式
format: 'YYYY/MM/DD',
message: '日期格式不正確'
},
choice: {//check控件選擇的數量
min: 2,
max: 4,
message: '必須選擇2-4個選項'
}
}
}
}
});
$("#btn-test").click(function () {//非submit按鈕點擊后進行驗證,如果是submit則無需此句直接驗證
$("#form-test").bootstrapValidator('validate');//提交驗證
if ($("#form-test").data('bootstrapValidator').isValid()) {//獲取驗證結果,如果成功,執行下面代碼
alert("yes");//驗證成功后的操作,如ajax
}
});
});
四、前端自定義驗證規則
1、回調自定義驗證
通過Bootstrapvalidator
的前端自定義驗證為callback
,代碼如下所示:
"rowkey": {
message: 'rowkey驗證失敗',
validators: {
stringLength:{
max: 1000,
message: 'rowkey不能超過1000個字符'
},
callback:{
callback : function(value, validator, $field) {
if ($('input:radio[name="databaseType"]:checked').val() == "Hbase" &&
value == ""){
return {
valid: false,
message: 'rowkey不能為空'
}
}
else{
return true
}
}
}
}
}
2、拓展插件的validators方法
這個方法是將項目中常用的方法放到了一個單獨js
中從而實現我們需要的效果的,代碼如下所示:
$(function () {
$.fn.bootstrapValidator.validators.checkIdCard = {
/**
* @param {BootstrapValidator} 表單驗證實例對象
* @param {jQuery} $field jQuery 對象
* @param {Object} 表單驗證配置項值
* @returns {boolean}
*/
validate: function (validator, $field, options) {
// debugger;
try {
return checkIdCardNo($field.val());
}catch (e){
console.error(e);
}
return false;
}
};
}(window.jQuery));
3、remote 后端自定義驗證
我們知道在Bootstrapvalidator
的前端自定義驗證為remote
,這個我們在數據庫驗重時經常會用到 ,代碼如下所示:
"tableName": {
message: '表名稱驗證失敗',
validators: {
notEmpty: {
message: '表名稱不能為空'
},
stringLength:{
max: 100,
message: '表名稱不能超過100個字符'
},
remote: {
message: '表名重復',
url: 'check',
data : '',//這里默認會傳遞該驗證字段的值到后端
delay: 2000 //這里特別要說明,必須要加此屬性,否則用戶輸入一個字就會訪問后臺一次,會消耗大量的系統資源,
}
}
},
后端部分代碼:
//檢測新增metaTableName是否重復
def check(){
def map = new HashMap()
def result = service.check(params.name)
if(result){
map.put("valid",true)
}else{
map.put("valid",false)
}
render(map as JSON) // 注意后端傳到前端的格式必須是帶有valid屬性的json對象才會被validator識別, // 如果返回任何其他的值,頁面驗證將獲取不到驗證結果導致無法驗證
}
{"valid":false} //表示不合法,驗證不通過
{"valid":true} //表示合法,驗證通過
五、常用事件
1、獲取validator對象或實例
我們這個方法一般是使用直接調用 $(form).bootstrapValidator(options)
來初始化validator
。在初始后之后有兩種方法來獲取我們的validator
對象或實例,方法如下所示:
方法一:
// Get plugin instance
var bootstrapValidator = $(form).data('bootstrapValidator');
// and then call method
bootstrapValidator.methodName(parameters)
方法二:
$(form).bootstrapValidator(methodName, parameters);
這種方式獲取的是代表當前form
的jquery
對象,調用方式是將方法名和參數分別傳入到bootstrapValidator
方法中,可以鏈式調用。
兩種方法使用如下所示:
// The first way
$(form)
.data('bootstrapValidator')
.updateStatus('birthday', 'NOT_VALIDATED')
.validateField('birthday');
// The second one
$(form)
.bootstrapValidator('updateStatus', 'birthday', 'NOT_VALIDATED')
.bootstrapValidator('validateField', 'birthday');
2、重置某一單一驗證字段驗證規則
$(formName).data(“bootstrapValidator”).updateStatus("fieldName", "NOT_VALIDATED", null );
3、重置表單所有驗證規則
$(formName).data("bootstrapValidator").resetForm();
4、手動觸發表單驗證
//觸發全部驗證
$(formName).data(“bootstrapValidator”).validate();
//觸發指定字段的驗證
$(formName).data(“bootstrapValidator”).validateField('fieldName');
5、獲取當前表單狀態
var flag = $(formName).data(“bootstrapValidator”).isValid();
6、根據指定字段名稱獲取驗證對象
// element = jq對象 / null
var element = $(formName).data(“bootstrapValidator”).getFieldElements('fieldName');
“BootstrapValidator表單驗證超詳要如何做”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。