Giả sử ta có input có ô input như sau
<input type="number" class="input-text qty text" name="qty" value="9" min="1" max="9" step="1">
jQuery(document).ready(function($) { // Ngăn không cho nhập ký tự không hợp lệ $(document).on('keydown', '.qty', function(e) { const allowedKeys = [8, 9, 27, 13, 46, 37, 38, 39, 40]; // Backspace, Tab, Escape, Enter, Delete, Arrow keys // Nếu nhấn tổ hợp phím Ctrl+A, Ctrl+C, Ctrl+V, Ctrl+X thì cho phép if ( (e.ctrlKey || e.metaKey) && (e.key === 'a' || e.key === 'c' || e.key === 'v' || e.key === 'x') ) { return; } // Ngăn nhập ký tự không phải số if ( !allowedKeys.includes(e.keyCode) && // Không phải phím đặc biệt (e.keyCode < 48 || e.keyCode > 57) && // Không phải số trên hàng phím thường (e.keyCode < 96 || e.keyCode > 105) // Không phải số trên Numpad ) { e.preventDefault(); } }); // Xử lý các trường hợp người dùng dán hoặc nhập ký tự không hợp lệ $(document).on('input', '.qty', function () { const $this = $(this); const value = $(this).val(); // If the value is not a number, reset the value to 1 if (!/^\d+$/.test(value) || value === '') { $this.val(1); } }); });