簡體   English   中英

如何禁用“number”類型的特定輸入元素的step屬性的驗證?

[英]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驗證,並為(真正的)無效元素顯示這些氣泡。

如果同時使用stepng-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM