нет возможности ввода чисел или специальных символов при вводе - PullRequest
0 голосов
/ 27 марта 2020

ниже работает по большей части; однако числа по-прежнему можно вводить двумя способами: 'copy paste' , а также из кэша / предложений браузера, , т. е. если ваш браузер выдает предложения из вашей истории для заполнения ввода. Числа все еще могут быть достигнуты этими двумя способами.

В любом случае, чтобы полностью исключить возможность ввода чисел в поле?

<input type="text" data-value-field="value" name="styleName" onkeypress="return /[a-z]/i.test(event.key)" />

Ответы [ 2 ]

1 голос
/ 27 марта 2020

Проверьте это

abc.oninput = function() {
  const val = this
  if (/[0-9~`!@#$%\^&*()+=\-\[\]\\';,/{}|\\":<>\?£.]+/.test(this.value)) {
const i = this.value.match(/[0-9~`!@#$%\^&*()+=\-\[\]\\';,/{}|\\":<>\?£.]+/g)
if (i !== null) {
  i.map(function(el) {
    val.value = val.value.replace(el, '')
  })
}
  }
}
<input type="text" data-value-field="value" name="styleName" id="abc" />
0 голосов
/ 27 марта 2020

onpaste="return false" используется для отмены события вставки.

autocomplete="off" используется для предотвращения автозаполнения.

setInterval(() => { ... }, 100); используется для регулярной проверки ввода и удаления любых цифры или специальные символы. Это лишает пользователя возможности использовать input.value = " ... " в консоли разработчика для установки значения ввода на что-то недопустимое, так как ввод будет автоматически исправлен.

const input = document.getElementById('cleanse');

setInterval(() => {
  input.value = input.value.replace(/[^a-zA-Z ]/g, "");
}, 100);
<input type="text" data-value-field="value" name="styleName" onkeypress="return /[a-z]/i.test(event.key)" onpaste="return false" autocomplete="off" id="cleanse" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...