Поле ввода только для буквенных символов - PullRequest
0 голосов
/ 13 июля 2020
  // input intials box
  var createInput = document.createElement("input");
  createInput.setAttribute("type", "text");
  createInput.setAttribute("id", "initials");
  // Max character length of 4 for people who have 2 middle names
  createInput.setAttribute("maxlength", "4");
  // Placeholder text
  createInput.setAttribute("value", "ABC");
  createInput.setAttribute("onkeydown", "return alphaOnly(event);");
  // Input my initials JMS is value is blank
  createInput.setAttribute(
    "onblur",
    "if (this.value == '') {this.value = 'JMS';}"
  );
  // Clear placeholder text onClick
  createInput.setAttribute(
    "onfocus",
    "if (this.value == 'ABC') {this.value = '';}"
  );

  createInput.textContent = "";

  questionsDiv.appendChild(createInput);

  function alphaOnly(event) {
    var key = event.keyCode;
    return (key >= 65 && key <= 90) || key == 8;
  }

Итак, я создал ввод, который принимает только инициалы, используя JavaScript. Поле ввода загружается и работает нормально, но моя функция не ограничивает клавиши 65-90 + 8 из-за ошибки, в которой указано, что alphaOnly не определен. Что мне не хватает?

1 Ответ

0 голосов
/ 17 июля 2020

Будут использоваться только буквы

createInput.setAttribute(
    "onkeypress",
    "return ((event.charCode >= 65 && event.charCode <= 90) || (event.charCode >= 97 && event.charCode <= 122) || (event.charCode == 32))"
  );

Это ограничивает символы

  createInput.setAttribute("maxlength", "4");
...