通过指令,我将一个前导零添加到模糊的输入字段,这使该字段有效。我遇到的问题是该字段仍然无效。
这样的事可能有效
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;
答案 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 强>