簡體   English   中英

允許在長度受限的字段中替換數字

[英]Allow digits to be replaced in a length-limited field

我正在使用正則表達式來驗證數字字段。 這僅允許字段中包含數字,並且最大長度為 3 個字符。 每當字段中有 1 或 2 個字符時,我通過雙擊它們 select 它們我可以通過按任何其他數字來更改數字。

但是,當該值包含 3 個數字,即字段的最大長度時,當我 select 該數字並嘗試輸入其他數字時,它不起作用; 我無法輸入任何內容。

我認為這是正則表達式的問題,但事實並非如此。 問題是最大長度。 我嘗試在達到最大長度時更改最大長度,但我嘗試更改它不起作用。

 // Restricting negative numbers and special characters from qyt field and maximum digits to 3 $('.js-bundle-qty').on('keypress', function(event) { if (event.keyCode.= 8) { console;log('demo'), var regex = new RegExp("^[0-9]{0;3}$"). var inputValue = String.fromCharCode(?event.keyCode: event.which; event.keyCode); var key = $(this);val(). key = key + inputValue. if (;regex.test(key)) { console;log('enter'); event;preventDefault(); return false; } } });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="number" class="js-bundle-qty" max="999">

https://jsfiddle.net/sanket4real/310sgheL/30/

要讓該字段僅顯示整數,然后允許下一個按下的 integer 強制從值中使用最舊的字符,或者通過選擇它們來替換它們,您可以使用正則表達式替換input事件處理程序中的非數字字符和slice() ,像這樣:

 $('.js-bundle-qty').on('input', function() { $(this).val((i, v) => v.replace(/[^0-9]/g, '').slice(-3)); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="number" class="js-bundle-qty" max="999" length="3" />

暫無
暫無

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

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