[英]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.