Как обстоят дела с консолью? - PullRequest
0 голосов
/ 17 апреля 2019

Я заранее прошу прощения за любую неопределенность, но я так новичок в этом. При этом, вот проблема:

Я впервые использую проверку ввода с регулярным выражением и получаю следующую ошибку в консоли. Msgstr "Uncaught TypeError: Невозможно прочитать свойство 'значение' из неопределенного." Это для 6-й строки моего JS. Когда я смотрю на код и сравниваю строки с 6 по 16, они выглядят точно так же. Может кто-нибудь объяснить, что я делаю не так?

Это мой первый проект, и я бы хотел, чтобы он был безошибочным. Пожалуйста, помогите, нежно.

Спасибо.

HTML:

    <input type="text" placeholder="Weight" id="userWeight" 
    onkeyup="numbersOnly(this)"/>

AND

    <input type="text" placeholder="Enter Dish" name="search" 
    id="mealText" onkeyup="lettersOnly(this)"/>

JS:

/ Функция использует регулярное выражение, которое представляет собой последовательность символов, определяющих шаблон поиска. Этот шаблон используется алгоритмами поиска строк для операций «найти» или «найти и заменить» над строками или для проверки правильности ввода. г = глобальный; Это флаг, который указывает, что регулярное выражение должно быть проверено на соответствие всем возможным совпадениям в строке & i = без учета регистра [] содержит логику регулярных выражений, которая группирует «a» - «z» и исключает все другие символы, используя ^ = все, кроме /

    function lettersOnly(input) {
      var regex = /[^a-z]/gi;
      input.value = input.value.replace(regex, "") //this is line 6 w/ 
      the error
      }
      lettersOnly();

    function numbersOnly(input) {
      var regex = /[^0-9]/g;
      input.value = input.value.replace(regex, "") //this is line 16 w/o 
      an error
      }
      }
      numbersOnly();

Я попытался удалить ';', но это не сработало. На самом деле я здесь потерян.

Код работает, как и ожидалось, но эта ошибка ...

1 Ответ

0 голосов
/ 17 апреля 2019

в вашем коде вы вызываете lettersOnly() и numbersOnly() в JS-коде

удалите эти вызовы из JS-кода, так как вы вызываете эту функцию из HTML при событии key up

function lettersOnly(input) {
  var regex = /[^a-z]/gi;
  input.value = input.value.replace(regex, "") //this is line 6 w/ 

  }

function numbersOnly(input) {
  var regex = /[^0-9]/g;
  input.value = input.value.replace(regex, "") //this is line 16 w/o 

  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...