非常简单的问题但是对于input type='number'
字段的范围太过困惑。
实际上,在表单验证过程中,表单上发现了错误。
<input type="number" placeholder="Demo Number Field" class="form-control" [(ngModel)]="demoNumber">
{{demoNumber}}
<input type="text" placeholder="Demo Text Field" class="form-control" [(ngModel)]="demoText">
{{demoText}}
当我第一次加载页面时,这些输入字段的值为null
但是每当我填充这些字段一次然后删除这两个字段中的所有内容时,Textfield
的值为{{ 1}}但null
的值仍然是numberfield
而不是NAN
。为什么会这样?因此,即使数字字段为空(删除内容后),null
也有效。我该如何解决这个问题?
还有一件事 - form
为什么会接受numberfield
之类的字符,而不是e
之类的所有字符?
这是我用于演示目的的plnkr
PS: - 有没有办法限制用户在号码字段中不允许d,f,r
或其他内容?
答案 0 :(得分:2)
编辑:: Chrome接受 <div ng-controller="Ctrl">
<select ng-options="item as item.id for item in items" ng-model="selected"
ng-change="dispThis(selected)"
></select> {{output}}
<div>
,firefox也接受 var app = angular.module('app', []);
function Ctrl($scope) {
$scope.items = [{
label: 'Portugal',
id: '351'
}, {
label: 'Spain',
id: '34'
}];
$scope.dispThis = function(c){
console.log(c);
$scope.output = "Country: "+c.label+" & Ph.code "+
c.id
};
}
。因为e
可以以1.1e + 10的形式存在。
但是,如果e
格式为e
等无效格式,则Firefox不允许e
。如果Firefox的格式为e or 1e
,则Firefox允许{。}}。
原始回答: 编辑并使文本框为空后,文本字段范围设置为空字符串,而不是空。
同样,number字段的范围设置为空字符串。当你尝试渲染它时,你会得到NaN。
对于你的第二个问题,我在firefox中试过并且它不接受任何字符,如e,f,r等。它们以红色显示。