在bootstrap验证器中手动设置有效性

时间:2014-12-01 16:41:27

标签: angularjs validation angular-ui

是否可以在bootstrap validator

中手动将字段有效性设置为无效

我在项目中使用角度js并希望使用日期范围验证。

“max-date”属性工作正常,除非我手动输入日期,这就是我想在控制器中重新验证字段并手动设置字段有效性的原因。

HTML:

    <div class="form-group inputGroupContainer" ng-controller="DatepickerCtrl">
        <label for="date">Date of Birth</label>
        <p class="input-group">
            <input type="text" name="date1"  placeholder="DD/MM/YYYY" class="form-control"  ui-date="{dateFormat: 'dd/MM/yyyy'}" ui-date-format="dd/MM/yyyy" datepicker-popup="{{format}}" ng-model="user.Personal.BirthDate" max-date="currentDate" is-open="opened" close-text="Close" />
            <span class="input-group-btn">
                <button type="button"   class="btn btn-default" ng-click="open($event)"><i class="glyphicon glyphicon-calendar"></i></button>
            </span>
        </p>
    </div>

angularjs控制器:

$scope.$watch('user.Personal.BirthDate', function (newValue, oldValue) {
                    if (newValue !== oldValue) {
                        if ($scope.user.Personal.BirthDate)
                            if ($scope.user.Personal.BirthDate.getTime() > new Date().getTime()) {
//set validity for "date1" to invalid
                            }
                        $($('#editPersonalForm')).bootstrapValidator('revalidateField', 'date1');
                    }
                });

1 个答案:

答案 0 :(得分:5)

此插件最近更改了名称 formValidation 和许可,但回到0.5.0这对我有用。

强制输入状态为INVALID

/**
     * Update all validating results of field
     *
     * @param {String|jQuery} field The field name or field element
     * @param {String} status The status. Can be 'NOT_VALIDATED', 'VALIDATING', 'INVALID' or 'VALID'
     * @param {String} [validatorName] The validator name. If null, the method updates validity result for all validators
     * @returns {BootstrapValidator}
     */
$('#editPersonalForm').data('bootstrapValidator').updateStatus('date1', 'INVALID', null)