检查模糊输入的有效性(Angular)

时间:2014-07-11 13:50:52

标签: javascript angularjs validation

通过指令,我将一个前导零添加到模糊的输入字段,这使该字段有效。我遇到的问题是该字段仍然无效。

这样的事可能有效

AngularJS: How do I manually set input to $valid in controller?

但我认为还必须检查表格。

任何简单的方法让它发挥作用?

修改

这是指令

.directive('leadingZero', function() {
    return {
        restrict: 'A',
        link : function (scope, elem, attr) {
            elem.bind('blur', function() {
                var leadingZero = parseInt(attr["leadingZero"], 10);
                var len = parseInt(elem[0].value.length, 10);

                if(len < leadingZero) {
                    while(parseInt(elem[0].value.length, 10) < leadingZero) {
                        elem[0].value = '0'+elem[0].value;
                    };
                };
            });
        }
    }
})

您可以这样使用它:

<input name="month" leading-zero="2" type="text" />

哪会改变&#34; 5&#34;进入&#34; 05&#34;

2 个答案:

答案 0 :(得分:0)

你必须看到原始和脏,如果你的领域没有得到任何改变,$ pristine是真的,$ dirty是假的,如果它得到改变$ dirty是真的,$ pristine是假的。使用代码更改类ng-class="{ 'has-error': form.name.$invalid && !form.name.$pristine }"

答案 1 :(得分:-1)

除了添加前导零的指令外,还可以使用input[number]进行简单验证:

<input name="month" 
       leading-zero="2"
       type="number"
       min="1" 
       max="12"  
       ng-model="month" />

<强> DEMO FIDDLE