2013-11-23 65 views
3

當我在字段中鍵入類似於abc的字符串時,我沒有看到ng-invalid類應用。 ng-pattern工程,如果我在控制檯上測試它...但不是角度。當使用type = number時,忽略角度ng-pattern

<input type="number" 
step=".05" 
ng-pattern="/^\d{0,}\.{0,1}\d{0,}$/" 
ng-model="someNumber"> 
+1

似乎爲我工作:http://plnkr.co/edit/rxbmgUHPtNmmZPJsBAOJ?p=preview的角度哪個版本你正在用嗎? –

+0

[此問題](http://stackoverflow.com/questions/20124302/validate-input-type-number-with-angularjs-and-pattern-regex)似乎相似,昨天發佈。還沒有答案。你也在使用Angular 1.0.7嗎? –

+0

我在1.0.8上,我認爲這是最新的穩定版本。 – chovy

回答

2

@ musically_ut在評論中的plnkr適用於Firefox - 即。輸入元素獲得字符串abc的類ng-invalid - 但不適用於Chrome。

使用Chrome,工作對我來說,如果我加入required屬性,即

<input type="number" 
     step=".05" 
     required 
     ng-pattern="/^\d{0,}\.{0,1}\d{0,}$/" 
     ng-model="someNumber"> 
+1

有沒有辦法允許空值? – chovy

+0

嗯,'required'意思是空的無效,不是嗎?好吧,我仍然處在處理同樣問題的過程中,但到目前爲止,我似乎正在通過將類型從「數字」更改爲「文本」來驗證成功。我目前看到的唯一不足就是失去向上/向下旋轉按鈕(對我來說OK)。我仍在探索是否需要''pattern''除'ng-pattern'之外,但我希望不會導致瀏覽器顯示自己的提示,如「請匹配請求的格式」。 – Daryn

+0

當然,'required'是可以的,但是當頁面加載它的空值直到數據被填充爲止,所以它顯示爲一個我想要避免的錯誤。也許我只是讓正則表達式匹配爲空。 – chovy