Не видит значение input, как исправить?

Мне нужно получить значение длины input, но выводит ошибку Cannot read properties of undefined (reading 'length')
Вот код:
<!DOCTYPE html>
<html>
    <head>
        ...
    </head>
    <body>
        ...
        <input type="text" onblur="lig()" id="inp1" class="inp1" hidden title="Write smth here" name="inputFor2" placeholder="Write smth here">
        ...
        <script>
           ...
            function lig(){
                var intxt=document.querySelector('input').length;
                console.log(intxt);
                let pp1=document.getElementById("pp1");
                let btn2=document.getElementById("btn2");
                if(intxt.length<5){
                    pp1.removeAttribute("hidden");
                };
                if(intxt.length>=5){
                    if(!pp1.hasAttribute("hidden")){
                        pp1.setAttribute("hidden","");
                    }
                    btn2.removeAttribute("hidden");
                }
            }
        </script>
    </body>
</html>
  • Вопрос задан
  • 179 просмотров
Решения вопроса 2
Aetae
@Aetae Куратор тега JavaScript
Тлен
Во-первых у input нет свойства length.
var intxt=document.querySelector('input').length;
intxt === undefined
console.log вообще-то должен был тебе это показать.

Далее: if(intxt.length<5){ тут ты пытаешься получить свойство length у unefined о чем тебе и пишет ошибка.

Скорее всего ты хочешь что-то такое:
var intxt=document.querySelector('input');
....
if(intxt.value.length<5){
  ....
} else {
Ответ написан
Комментировать
@alexalexes
Вам нужно получить значение текстового поля так:
var intxt = document.querySelector('input').value;
Как раз это и будет строка, у которой можно посмотреть length.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы