我有一個應用程序,用戶必須在數字類型文本框中輸入最少15位數字。HTML5輸入類型號碼重新格式化長號碼
如果用戶輸入一個較長的數字,有時候> = 19位數,然後使用右邊的箭頭或鍵盤上的箭頭鍵,它將數字自動設置爲一個浮點數,最後顯示爲e+
,顯然,並不理想。
<input min="0" type="number" value="7897894561234567898">
什麼是要麼刪除或抵消這種行爲的最好方法?有什麼要做,或者我將不得不使用文本類型的輸入? (我寧願不)。
我有一個應用程序,用戶必須在數字類型文本框中輸入最少15位數字。HTML5輸入類型號碼重新格式化長號碼
如果用戶輸入一個較長的數字,有時候> = 19位數,然後使用右邊的箭頭或鍵盤上的箭頭鍵,它將數字自動設置爲一個浮點數,最後顯示爲e+
,顯然,並不理想。
<input min="0" type="number" value="7897894561234567898">
什麼是要麼刪除或抵消這種行爲的最好方法?有什麼要做,或者我將不得不使用文本類型的輸入? (我寧願不)。
HTML5 <input type=number>
明確使用與JavaScript相同的Number類型。 maximum integer value before precision is lost是9007199254740991,它有16位數字。
你不能處理比JavaScript更大的整數,你必須把它看作一個字符串。
對於觸摸屏,您應該使用<input type=text>
以及pattern
屬性進行驗證,並使用inputmode
屬性。默認的驗證消息沒有用,所以還應該處理'invalid'
事件。
(開個玩笑,inputmode
不被任何支持。您應該使用<input type=tel>
顯示在觸摸屏設備數字鍵盤。)
<form>
<input name=num type=tel
required pattern="\d+"
oninvalid="setCustomValidity('A number is required')"
oninput="setCustomValidity('')">
<input type=submit>
</form>
有大約信貸規範中的一個音符卡號:
type=number
狀態不適用於輸入h只能由數字組成,但不嚴格地說是數字。例如,對於信用卡號碼或美國郵政編碼來說是不合適的。確定是否使用type = number的一個簡單方法是考慮輸入控件是否具有spinbox接口(例如,帶有「向上」和「向下」箭頭)。
參見:https://html.spec.whatwg.org/multipage/input.html#number-state-(type=number)
我看到了'E +'在Chrome,但在FF我甚至無法使用箭頭更改數量,這也FF轉換成'7897894561234570000' – j08691
你真的需要上/下箭頭? –
@Josh Lee,不,但是當用戶按下鍵盤上的上/下箭頭時也會發生 –