【问题标题】:angularJS required is not working in directive所需的angularJS在指令中不起作用
【发布时间】:2016-07-04 09:08:11
【问题描述】:

我有一个input="text",这是必需的。

下面的代码是一个强制用户只输入数字的文本指令。

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

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>

【问题讨论】:

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


    【解决方案1】:

    您不能使用 type="number" 实现相同的行为吗?

    你需要改变

    return undefined;

    return null;
    

    否则 angular 会导致解析错误,这不是必需的错误。因此,除了您选择备用值之外,您几乎做了所有好事。

    【讨论】:

    • 我不想使用 type=number 因为它允许用户输入 'e' 并且存在一些其他问题。
    猜你喜欢
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    相关资源
    最近更新 更多