簡體   English   中英

檢查模糊時輸入的有效性(角度)

[英]Check validity of input on blur (Angular)

通過指令,我在模糊的輸入字段上添加了前導零,從而使該字段有效。 我遇到的問題是該字段仍然返回為無效字段。

這樣的事情可能會起作用

AngularJS:如何在控制器中手動將輸入設置為$ valid?

但是我認為該表格也必須檢查。

有什么簡單的方法可以使其正常工作嗎?

編輯:

這是指令

.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" />

這會將“ 5”更改為“ 05”

您必須了解原始狀態和臟狀態,如果您的字段沒有任何更改,則$ pristine為true,$ dirty為false,如果發生更改,則$ dirty為true並且$ pristine為false。 例如,帶有用於更改類的代碼ng-class="{ 'has-error': form.name.$invalid && !form.name.$pristine }"

連同添加前導零的指令一起,使用input[number]進行輕松驗證:

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

演示場

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM