Отключить возможность вставки плавающих символов в поле ввода номера - PullRequest
0 голосов
/ 27 марта 2019

У меня проблема при попытке отключить вставку плавающего числа для <input type='number' />.Я отключаю + - e E . onKeyDown, но как отключить его на onPaste?На данный момент я могу использовать только e.preventDefault() для onPatste, чтобы отключить в целом.Как отключить только + - e E .

  <CutomInputField
     required
     type='number'
     inputProps={{
       min: '1',
       max: '100',
       autoComplete: 'off',
     }}
     onKeyDown={e =>preventFloatingPointNumber(e)}
     onPaste={e => {
       e.preventDefault()
       // preventFloatingPointNumber(e) //does not work such way
              }
            }
    />

// 'left arrow', 'up arrow', 'right arrow', 'down arrow',
const arrowsKeyCodes = [37, 38, 39, 40];
// 'numpad 0', 'numpad 1',  'numpad 2', 'numpad 3', 'numpad 4', 'numpad 5', 
'numpad 6', 'numpad 7', 'numpad 8', 'numpad 9'
const numPadNumberKeyCodes = [96, 97, 98, 99, 100, 101, 102, 103, 104, 105];

const preventFloatingPointNumber = e => {
// allow only [0-9] number, numpad number, arrow,  BackSpace, Tab
if ((e.keyCode < 48 && !arrowsKeyCodes.includes(e.keyCode) || e.keyCode > 57 &&
    !numPadNumberKeyCodes.includes(e.keyCode)) &&
    !(e.keyCode === 8 || e.keyCode === 9))
    e.preventDefault()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...