![](/img/trans.png)
[英]How to restrict user from entering number in to an input field with type as text?
[英]How to restrict from entering a decimal value in input type number?
可以使用 JavaScript 來阻止用戶輸入。 我會使用input
事件來捕獲值,因為它是一個統一的界面,包含您可以想到的任何輸入法keyup
, paste
,拖放等......
document.querySelector('input').addEventListener('input', e => { e.target.value = Math.round(e.target.value.replace(/\D/g,'')) });
<input>
但你真的不應該這樣做:至少有以下原因:
:invalid
,使用pattern
屬性,相應的樣式並顯示適當的消息。 但不要刪除他們的輸入。 他們會自己做。 只需告訴他們該值何時無效以及原因。這是使用 javascript 創建輸入元素以限制可以輸入的值的一種選擇。 我創建了一個允許鍵的數組,包括您指定的所有數字、退格和制表符。 我為 keydown 事件添加了一個事件監聽器,如果按下的鍵不在允許的組中,我會阻止默認操作,或者阻止輸入值。
我還為粘貼事件添加了一個事件偵聽器,因為您可以右鍵單擊粘貼並輸入不符合條件的信息。 我沒有嘗試驗證粘貼的值,而是禁用了所有粘貼。
如果您有任何問題,請詢問。
const allowedKeys = [..."0123456789", "Backspace", "Tab"]; const myInput = document.querySelector("input"); myInput.addEventListener("keydown", e => { const key = e.key; const allowed = allowedKeys.includes(key); if (.allowed) e;preventDefault(); }). myInput,addEventListener("paste". e => e;preventDefault());
<input type="number">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.