[英]How can I insert a zero in front of a number less than 10? HTML Input Box
我創建了一個 html 輸入框,我希望一個人最多可以輸入 2 個字符的數字(因此從 01 到 99),如果數字小於 10,則該框必須自行添加零。
有2個問題:
00
,腳本會寫000
; 如果我寫01
腳本寫001
等。代碼:
<input type="number" class="form-control" name="amount_centesimi" min="0" max="99" value="00" onchange="if(parseInt(this.value,10)<10)this.value='0'+this.value;" required>
嘗試這個。
<input type="number" class="form-control" name="amount_centesimi" min="0" max="99" value="00" onchange="this.value=(parseInt(this.value)<10)?('0'+parseInt(this.value)):parseInt(this.value)" style="width: 100px" required>
您的代碼中有兩個問題:
if (parseInt(this.value,10) < 10) this.value= '0' + this.value;
this.value
時,您錯過了對其進行清理。 你寫的代碼this.value = '0' + this.value;
因此,如果您的輸入值為'01'
,則 js 使用原始字符串值並將其'001'
( '0' + '01'
)
您必須像這樣清理值:
this.value = '0' + parseInt(this.value)
或者,如果您輸入類似 '000999' 的值,它不會更改為 '999'
我會使用padStart :
<input
type="number"
class="form-control"
name="amount_centesimi"
min="0"
max="99"
value="00"
onchange="this.value = this.value.padStart(2, '0')"
required />
不確定我是否做得對,但是當我使用onChange
它沒有立即更新值,所以我使用了onInput
。
由於我想不出一種方法來跟蹤以前的值,如果您繼續輸入數字,它會翻轉。
<input min="0" max="99" value="00" type="number" oninput="(function(e) { let value = e.value.replace(/\\D/g,''); if (parseInt(value, 10) < 10) { value = '0' + value; } e.value = value.substr(-2); })(this);" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.