2016-02-18 28 views
0

非常容易的问题,但对input type='number'字段的范围有什么疑问。 实际上在表单的验证过程中发现错误。为什么删除内容后,type =“number”的输入值仍然是'NaN'?

<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值,但每当我填补这些领域的一次,然后从两个字段删除所有内容的Textfieldnullnumberfield值仍然是NAN而不是null。这是为什么?因此,即使数字字段为空(删除内容后),form也是有效的,这是错误的。我怎样才能解决这个问题?

还有一件事 - 为什么numberfield接受e等一些字符,但不是像d,f,r等所有字符?

这里是我已经用于演示目的

Plunker code

PS plnkr: - 有什么办法来限制用户不允许e或者在数字字段的东西吗?

+1

查看http://stackoverflow.com/a/26722397/215945 –

+0

yups现在更清晰。谢谢。 –

回答

2

编辑::铬接受e,Firefox还接受e。因为e可以以1.1e + 10的形式存在。

但是,如果firefox不允许使用e,如果它的格式为e or 1e等。Firefox允许使用其有效格式,如1.1e+10

原始回答: 编辑并使文本框为空后,文本字段的范围设置为空字符串,不为空。

同样的方法,数字字段的范围设置为空字符串。当你尝试渲染它时,你会得到NaN。

对于你的第二个问题,我试过在Firefox中,它不接受像e,f,r等任何字符,它们以红色显示。

+1

当我在Chrome中测试时,它只接受'e',但它确实接受它,并且范围变量的值保持为'NaN'。很奇怪。 – wpercy

+0

yups恰恰在铬上它接受'e'。奇怪!为什么这样 ? –

+0

@Naga但我已经设置类型'数字'不'字符串使用打字稿再次检查我的plnkr。 –

相关问题