bootstrap validate 实现页面动态验证(formvalidate)

关于基本的bootstrap validate 验证方法外面有许多博客上都有讲解,我就不在过多叙述了。大家也可以去看官网api:http://bv.doc.javake.cn/api/

今天要说的是动态生成的页面如何添加动态的验证。

因为页面是动态生成的,你并不知道它会有哪些字段,所以验证的时候没有办法按照api上根据name来验证。

 

首先来看这个页面

function brandHtml(category, subCategory, list, size) {
        var brandH = "";
        for ( var i = size; i < list.length; i++) {
            if (category == list[i].category
                    && subCategory == list[i].subCategory) {
                brandH += '<div class="col-xs-12 submit-form-group">'
                        + '<div class="bs-callout bs-callout-info">'
                        + '<div class="row">'
                        + '<div class="col-xs-2">
                        + '<label class=" control-label">' + list[i].brand
                        + '</label>' + '</div>' + '<div class="col-xs-3">'
                        + '<div class="form-group">';
                brandH += radioHtml(list[i].contentName, list[i],
                        list[i].brand, i);
                brandH += '</div>'
                        + '</div>'
                        + '<div class="col-xs-7">'
                        + '<div class="form-group">'
                        + '<div class="input-group">'
                        + '<span class="input-group-addon ">备注</span>'
                        + '<input type="text" class="form-control remark submit-filed"  name="'+list[i].id+'" >'
                        + '</div>' + '</div>'+'</div>'
                         + '</div>'  + '</div>' + '</div>';
            }
        }
        return brandH;
    }
function radioHtml(radiotxt, listnum, isSelfCould, size) {
        var radioH = "";
        var radioValues = listnum.contentType.split('-')[1].split(';');
        for ( var i = 0; i < radioValues.length; i++) {
            radioH += '<div class="radio">' + '<label>';
            radioH += '<input name="'+listnum.id+'_r" class="content submit-filed" type="radio"  value="'+radioValues[i]+'"/>';
            radioH += radioValues[i] + '</label>' + '</div>';
        }
        return radioH;
    }

 

可以看到页面中有很多个radio选择框,有个备注文本框。

可以看到name分别为name="'+listnum.id+'_r",name="'+list[i].id+'"

这样子很多人就不知道如何做验证了。而且在bootstrap  的api中查不到方法。这就需要去看Formvalidate这个网站了。

在这个介绍里面有这么一个方法:$('#myForm').bootstrapValidator('addField', list[i].id+"_r",_rdCheck;

    //首先我们需要在页面加载的时候验证初始化
        $('#myForm').bootstrapValidator({
            message : '',
            feedbackIcons : {
                /* valid : 'glyphicon glyphicon-ok',
                invalid : 'glyphicon glyphicon-remove',
                validating : 'glyphicon glyphicon-refresh' */
            },
            fields : {
            }
        });
  //可以看到我定义了两个验证规则,一个是对于文本框的,一个是对于radio按钮的 var _bzCheck = { message : '', validators : { notEmpty : { message : '不能为空' } } } var _rdCheck = { message : '', validators : { notEmpty : { message : '该选项为必填的' } } } //定义方法,添加验证,第一次循环给页面所有name=list[i].id+"_r"的元素添加验证,第二次是给name=list[i].id的元素添加验证 function addValidator(list){ //list是一个ArrayList数组,存放的是当前页面的所有元素信息 for(var i=0;i
<list.length;i++){ $('#myForm').bootstrapValidator('addField', list[i].id+"_r",_rdCheck); } for(var i=0;i<list.length;i++){ $('#myForm').bootstrapValidator('addField', list[i].id,_bzCheck); } }

 

调用上面这个方法,这样子就可以给页面所有的radio和备注元素添加上了验证

posted @ 2017-01-05 16:24  幻月月  阅读(1736)  评论(0)    收藏  举报