2016-02-18 59 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。 –

相關問題