angularJS required在指令中不起作用

时间:2016-07-04 09:08:12

标签: javascript angularjs asp.net-mvc validation angularjs-directive

我需要input="text"

以下代码是文本指令,强制用户只键入数字。

默认情况下,所需警告为ON。现在的问题是,如果您在文本框中键入除数字之外的任何关键字,它将不会键入字符(这很好)但所需的错误将消失!!!!!!结果是一个文本框,其值为空,而不是必需的错误消息!!!



angular.module('league').directive('numbersOnly', function () {
    return {
        require: 'ngModel',
        link: function (scope, element, attr, ngModelCtrl) {
            function fromUser(text) {
                if (text) {
                    var transformedInput = text.replace(/[^0-9]/g, '');

                    if (transformedInput !== text) {
                        ngModelCtrl.$setViewValue(transformedInput);
                        ngModelCtrl.$render();
                    }
                    return transformedInput;
                }
                return undefined;
            }            
            ngModelCtrl.$parsers.push(fromUser);
        }
    };
});



 

<input type="text" class="CreateTxt" ng-model="league.name" name="leagueName" required />
<span ng-show="myForm.leagueName.$error.required" style="color:red">Its required...</span>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

使用type =&#34; number&#34;?无法实现相同的行为

您需要更改

  

return undefined;

return null;

否则,角度将导致解析错误,这不是必需的错误。所以除了你选择的后备价值之外,几乎所有的事情都做得很好。