簡體   English   中英

輸入只允許數字 1-100 javascript

[英]input only allow number 1-100 javascript

我想使用 javascript 輸入百分比

<input type="text" class="form-control" id="amount" name="amount">

我制作了 js,所以當我輸入時,它會添加 %

var amount = document.getElementById('amount');
amount.addEventListener('input', function(e){
    amount.value = amount.value.replace('%','') + '%';
})

但它仍然可以輸入字符,我只想允許數字 1-100,這可能嗎?

或者您可能對輸入百分比更好的建議有任何建議

HTML 輸入type屬性允許number值,因此它只能接受數字值。 您還可以傳遞一個max屬性,該屬性將為輸入的數字設置限制。 例如:

<input type="number" class="form-control" id="amount" name="amount" max="[YOUR_NUMBER]">

編輯:您仍然可以使用 JS 函數驗證您的輸入。

<input type="text" class="form-control" id="amount" name="amount">
let amount = document.getElementById('amount');
amount.addEventListener('input', function(e){
    amount.value = amount.value.replace('%','')
    let tmpValue = +amount.value
    amount.value = 0 <= tmpValue <= 100 ? tmpValue + '%' : "[VALUE IF NOT 1<AMOUNT<100]";
})

有一點晚。 這是一個有趣的例子。 人們可以在這里加入更多的邏輯。 下面的示例只允許 0 到 100 之間的數字,並在末尾添加 %。 一旦您輸入了最多一個的數字,您必須重新開始。 這里必須建立一個新的邏輯。

 let amount = document.getElementById('amount'); amount.addEventListener('input', function(){ const n = amount.value.replace('%',''); if ( n >= 0 && n <= 100 ) { amount.value = amount.value.replace('%','') + '%' } else { amount.value = n.slice(0, -1) + '%' } })
 <input type="text" class="form-control" id="amount" name="amount">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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