bootstrap 动态添加验证项和取消验证项

   bootstrap 中的bootstrapValidator可以对前端的数据进行验证,但是有的时候我们需要动态的添加验证,这样需要我们动态的对bootstrapValidator的内容做修改。

  传统的bootstrapValidator验证是

  

 $('#MaintainEntryForm').bootstrapValidator({
        message: '输入值无效!',
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            Specifications: {
                validators: {
                    notEmpty: { message: '请输入规格!' }
                }
            },
            ProductNameEN: {
                validators: {
                    notEmpty: { message: '请输入英文名称!' }
                }
            },
            ApplyUnit: {
                validators: {
                    notEmpty: { message: '请输入申报单位!' },
                    stringLength: {
                        min: 1,
                        max: 3,
                        message: '申报单位最多输入3位!'
                    }
                }
            },
            SuttleWeight: {
                validators: {
                    notEmpty: { message: '请输入净重!' },
                    //regexp: { regexp: /^\d{0,8}\.{0,1}(\d{1,3})?$/, message: '净重只能输入大于等于0的整数或者3位小数!' },
                    callback: {
                        message: '净重只能输入大于0的整数或者3位小数!',
                        callback: function (value, validator, $field) {
                            var reg = /^\d{0,8}\.{0,1}(\d{1,3})?$/;
                            return parseFloat(value) > 0 && reg.test(value);
                        }
                    }
                }
            }
        }
    }).on("success.form.bv", function (e) {
        if (EntryInfo.SaveType == 1) {
            EntryInfo.SaveEntryInfo();
        }
        else if (EntryInfo.SaveType == 2) {
            EntryInfo.SaveAndSubmitAudit();
        }
    });

  这样的验证在页面有交互的需求的时候不能够满足条件,所以我们需要动态的对验证条件进行修改,这里的做法是先把所有可能用到的条件先全部添加进去,在指定条件下去除筛选条件。

  去除方式

$('#MaintainEntryForm').data('bootstrapValidator').validateField('ApplyUnit');

  这样 名称为ApplyUnit的验证凡是就不会起作用了

      对于已经提示报错信息的要去除验证信息的可以使用以下方式

 $('#MaintainEntryForm').data('bootstrapValidator')
           .updateStatus('ApplyQty', 'NOT_VALIDATED', null)
           .validateField('ApplyQty');

  这样页面对应的ApplyQty 字段后面验证信息就会消失  不用重置整个bootstrapValidator 就可以了 

  记录点点滴滴

 

posted @ 2015-07-09 18:09  Flying_Boy  阅读(16036)  评论(0编辑  收藏  举报