角度验证无法选择

时间:2015-06-17 19:14:18

标签: javascript angularjs validation

它是一个简单的形式下拉和保存按钮。在页面加载选择应该是ng-invalid,因为它是必需的并且没有选择任何内容但是表单和选择都是ng-valid并且调用了save函数。  一旦我选择任何东西并取消选择它。然后它表现得很好。

            <form role="form" name="frmVariableConfig" id="frmVariableConfig" novalidate ng-submit="frmVariableConfig.$valid && saveChanges()">

            <div>
                <div class="form-group">
                    <div class="form-group control-group">
                        <span>Logic</span>


                        <select name="service_id" class="Sitedropdown" style="width: 220px;"
                                ng-model="CurrCustomer.Logic"
                                ng-options="service.ServiceID as service.ServiceName for service in services"
                                required="">
                            <option value="">Select Service</option>
                        </select>
                    </div>

                </div>
            </div>
            <div>
                <button type="submit" class="btn btn-sm text-right">Save</button>
            </div>
        </form>

控制器代码如下所示。

(function () {
'use strict';
var controllerId = 'dashboard';
angular.module('app').controller(controllerId, ['$scope', dashboard]);

function dashboard($scope) {


    $scope.CurrCustomer = {};
    $scope.CurrCustomer.Logic = false;
    $scope.saveChanges = function () {
        alert('function called');

    };
    $scope.services = [
{ ServiceID: 1, ServiceName: 'Service1' },
{ ServiceID: 2, ServiceName: 'Service2' },
{ ServiceID: 3, ServiceName: 'Service3' }
    ];
}})();

1 个答案:

答案 0 :(得分:1)

您需要从控制器中删除填充$scope.CurrCustomer.Logic = false;并使其在控制器负载上有效的setter ng-model。填写CurrCustomer.Logic值后,它将成为有效输入。