-1

我正在做 Angular js 下拉验证,但在做下拉验证时遇到问题。

我已从该网站获取所有内容并使用此代码: https ://github.com/turinggroup/angular-validator

演示

但是在上面的链接中,没有什么比对 Dropdwon 控件进行验证更重要的了。因此,如果有人使用相同的代码进行下拉验证,如果成功,请指导我。

这是我创建的 plunker,其中包括下拉菜单:

MyDropdownControlFullDemo

这是我的下拉代码:

     <select class="form-control m-b-sm" required ng-model="form.Obj" ng-options="c.Name for c in Obj track by c.Id">
                 </select>

 $scope.Obj = [
    {Id : '0', Name : 'Select' }, 
        {Id : '1', Name : 'USA' },       
        {Id : '2', Name : 'Canada' },
        {Id : '3', Name : 'Russia' } ];

}

  $scope.Obj = { Id: '0', name: 'Select' };

我想要的是,如果用户没有从下拉列表中选择任何选项,那么验证应该像文本框控件的验证一样出现。

4

1 回答 1

1

您需要更改您的代码,如 -

在 Html 中用于选择列表-

    <select class="form-control m-b-sm" name="selectbox"  required-message="'Yo! This field is required..'"
                            required ng-model="form.Obj" ng-options="c.Name for c in Objlist track by c.Id">
                  <option value="">Select</option>
</select>

控制器看起来像-

 angular.module('angular-validator-demo').controller('DemoCtrl',function($scope){

 $scope.Objlist = [
    {Id : '0', Name : 'Select' }, 
        {Id : '1', Name : 'USA' },       
        {Id : '2', Name : 'Canada' },
        {Id : '3', Name : 'Russia' } ];



  $scope.Obj = { Id: '0', name: 'Select' };

    $scope.submitMyForm = function(){
        alert("Form submitted");
    };

    $scope.myCustomValidator = function(text){      
        return true;
    };


    $scope.anotherCustomValidator = function(text){
        if(text === "rainbow"){
            return true;
        }
        else return "type in 'rainbow'";
    };

    $scope.passwordValidator = function(password) {

        if(!password){return;}

        if (password.length < 6) {
            return "Password must be at least " + 6 + " characters long";
        }

        if (!password.match(/[A-Z]/)) {
             return "Password must have at least one capital letter";
        }

        if (!password.match(/[0-9]/)) {
             return "Password must have at least one number";
        }

        return true;
    };



});
于 2016-03-29T12:38:15.887 回答