Bootstrapvalidator 前端自定義驗證和ajax遠程訪問後端驗證

概述

Bootstrapvalidator是一款bootstrap風格的表單驗證插件,擁有非常強大的驗證功能,如果系統使用的是bootstrap,那麼驗證插件非此莫屬。
Bootstrapvalidator的github地址:https://github.com/nghuuphuoc/bootstrapvalidator/
Bootstrapvalidator的API文檔:http://formvalidation.io/api/
Bootstrapvalidator的demo:http://formvalidation.io/examples/

目前Bootstrapvalidator最新版在http://formvalidation.io發佈的好像收費了,只能使用github上的早期版本了,然後api及例子文檔見:
http://bootstrapvalidator.votintsev.ru/

一般的校驗因爲demo寫的很詳細了,所以就不多說了下面介紹兩個比較重要的擴展

重點

1.前端自定義驗證

Bootstrapvalidator的前端自定義驗證爲callback,
文檔地址:http://bootstrapvalidator.votintsev.ru/validators/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.ajax後端自定義驗證

Bootstrapvalidator的前端自定義驗證爲remote,在數據庫驗重時經常會用到
文檔地址:http://bootstrapvalidator.votintsev.ru/validators/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識別
    }
發佈了80 篇原創文章 · 獲贊 52 · 訪問量 39萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章