Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   почему не работает функция checkAnswers (https://javascript.ru/forum/misc/65699-pochemu-ne-rabotaet-funkciya-checkanswers.html)

Max-Mas 03.11.2016 18:38

почему не работает функция checkAnswers
 
подскажите новичку, есть такая задача - задаются 2 загадки, пользователь вводит ответы, программа проверяет их и в зависимости от результата выводит разные сообщения. Код ниже.

<!DOCTIPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>

</head>

<script>
function checkAnswer(id, trueAnswer)
{
        var userAnswer = document.getElementByld(id).value;
        if (userAnswer == trueAnswer)
            return true;
        else
            return false;
}
function checkAnswers()
{
        var goodAnswers = 0;

        if (checkAnswer('puzzle1', 'капуста'))
            goodAnswers++;

        if (checkAnswer('puzzle2', 'елка'))
            goodAnswers++;

        if (goodAnswers == 0)
            alert('Вы ничего не угадали');
        else
            alert('Количество правильных ответов: ' + goodAnswers);
}

</script>

<body>
<h3>Отгадай загадки!</h3>
<p>Сто одежек и все без застежек<p/>
<input type="text" id=puzzle1 />
<br><br><br>
<p>Зимой и летом одним цветом<p/>
<input type="text" id=puzzle2 />
<br><br><br>
<input type="button" value="Ответить" onClick="checkAnswers()" />
</body>

</html>


Пример учебный, код записан из образца, причем вроде как правильно, но не срабатывает. Я уже тут все, что мог перепробовал, но не могу понять, где засада.

Что здесь не так?

рони 03.11.2016 18:49

Max-Mas,
а консоль пробовали смотреть? а теги?
в тегах 2 опечатки, в скрипте 1

Max-Mas 03.11.2016 19:52

Цитата:

Сообщение от рони (Сообщение 433903)
Max-Mas,
а консоль пробовали смотреть? а теги?
в тегах 2 опечатки, в скрипте 1

Сэнкс за подсказку насчет консоли, как-то я про нее забыл. Пишет, что document.getElementByld(id) не функция, undefined. Но что с этим делать даже не знаю, пример учебный, я оттуда код взял. Значит там ошибки, но где они именно?

И насчет опечаток тоже были мысли, что закрывающие слэши в input лишние, что в if нет логических операторов. Пробовал менять, но безрезультатно.

Поэтому вот и обратился за помощью, в какую сторону хотя бы смотреть?

рони 03.11.2016 20:00

Цитата:

Сообщение от Max-Mas
Пишет, что document.getElementByld(id) не функция, indefined.

Цитата:

Сообщение от рони
в тегах 2 опечатки, в скрипте 1

https://developer.mozilla.org/en-US/...getElementById
смотреть сюда и медитировать, игра такая есть найдите разницу, вам же консоль написала что исправить.

Max-Mas 03.11.2016 20:37

Как-то вот не ожидал, что в учебниках будут ошибки.

Спасибо за наводку. Нашел, исправил, все заработало.

А подскажите, где эти опечатки в тегах, понимаю, что по идее должен сам найти, но уже столько вариантов, что просто хочется какой-то определенности

рони 03.11.2016 20:40

Max-Mas,
строка 38 и 41

Max-Mas 04.11.2016 08:18

так вроде бы тег p может даже вообще не иметь закрывающего тега? Поэтому наверное программа все равно нормально отрабатывает, типа она игнорирует этот слэш после p. Т.е. это уже не совсем ошибка?))

рони 04.11.2016 08:37

Max-Mas,
браузер много чего может исправить, но лучше его не напрягать, может к вашим фантазиям, добавить свои.

Max-Mas 05.11.2016 20:11

Цитата:

Сообщение от рони (Сообщение 433957)
Max-Mas,
браузер много чего может исправить, но лучше его не напрягать, может к вашим фантазиям, добавить свои.

Согласен.

Спасибо, что помогли разобраться!


Часовой пояс GMT +3, время: 23:25.