[英]How can I disable the validation of the step attribute of a specific input element of type 'number'?
我正在使用angular 1.5.5,我想利用HTML5表單驗證。 我不是BW專家。
所以我有這樣的事情:
<input type="number" name="element1" ng-model="element1" step="{{range.step}}" min="{{range.min}}" max="{{range.max}} ..."/>
<input type="number" name="element2" ng-model="element2" .../>
<button type="submit" ...</button>
根據規范,步驟值有兩個目的:1。它表示從輸入元素的值中減去或添加的步驟編號,以及2.它確定輸入元素的有效值。 當然,這是不幸的。 在我的情況下,范圍非常小,比如介於0和1之間,我想將步長值設置為0.1。 但是,我也希望所有0到1之間的值被歸類為有效。
假設element1包含使步驟條件無效的值。
首先,似乎步驟驗證過程不能一直工作---根據上面的無效值不會觸發角度有效性類(例如,scope.form。$ invalid是false)所以我可以繼續提交。 這種行為雖然可能是由一個bug引起的,但對我有利,但我擔心有一天這個bug會被修復,然后我就會遇到問題。
其次,假設element2包含使其條件無效的值,例如用戶輸入非數字字符。 在這種情況下,有效性類被適當地設置(例如,scope.form。$ invalid為true)並且我可以中止提交。 但是,element1旁邊會出現一個氣泡,並顯示錯誤消息:“請選擇一個有效值。兩個最接近的有效值為0.5和0.6。”。 請注意,element1出現在表單中的element2之前。 我想在元素2旁邊找到一個帶有相應錯誤消息的氣泡。
是否有可能以某種方式抑制element1的步驟條件的驗證? 如果是這樣,怎么樣? 如果沒有,我還有其他選擇嗎? 請注意,我希望保留HTML5驗證,並為(真正的)無效元素顯示這些氣泡。
如果同時使用step
和ng-step
step
,您可以完成所需的操作。
使用step
指定要在HTML輸入向上/向下切換時增加/減少值的數量。 使用ng-step
指定Angular要對值執行的驗證。 如果不指定ng-step
,Angular將使用step
的值進行驗證。
例如,您可能希望使用輸入切換將值增加0.1,並單獨驗證該值是0.01的增量。 您可以使用以下輸入定義來完成此任務:
<input type="number" ng-model="model.field" step="0.1" min="0" max="1" ng-step="0.01"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.