Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
justuserost
1

Плохо работает скрипт

15.12.2013, 23:24. Просмотров 607. Ответов 4
Метки нет (Все метки)


Вообщем есть страница со скриптом, но почему-то последний вопрос каким бы не был ответ считается как неправильный, никак не разберусь почему
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<html>
    <head>
        <title>Тест</title></head>
        <style type = "text/css">
            div.questionBlock {
                display: none;
            }
        </style>
        <script type = "text/javascript">
            var answer;
        </script>
    </head>
    <body background="tz13.jpg"><h1>Тест по теме: "Цифровые каналы передачи данных"</h1>
        <div class = "questionBlock">
           1. Что не относится к каналам PDH?<br>
            <input type = "radio" name=q1 onClick="qa.nowRight = 0">T1/T4;<br>
            <input type = "radio" name=q1 onClick="qa.nowRight = 0">E1/E4;<br>
            <input type = "radio" name=q1 onClick="qa.nowRight = 0">DS-1;<br>
            <input type = "radio" name=q1 onClick="qa.nowRight = 0">DS-0;<br> 
            <input type = "radio" name=q1 onClick="qa.nowRight = 1">D1/D4;<br>
        </div>
        <div class = "questionBlock">
            2. Сколько зон выделяют в фрейме?<br>
            <input type = "radio" name=q2 onClick="qa.nowRight = 0">1;<br>
            <input type = "radio" name=q2 onClick="qa.nowRight = 0">2;<br>
            <input type = "radio" name=q2 onClick="qa.nowRight = 0">3;<br>
            <input type = "radio" name=q2 onClick="qa.nowRight = 0">4;<br>
            <input type = "radio" name=q2 onClick="qa.nowRight = 1">5;<br>
        </div>
        
        <div class = "questionBlock">
            Оцените сложность теста.<br>
            <input type = "radio" name=q2 onClick="qa.nowRight = 0">1;<br>
            <input type = "radio" name=q2 onClick="qa.nowRight = 0">2;<br>
            <input type = "radio" name=q2 onClick="qa.nowRight = 0">3;<br>
            <input type = "radio" name=q2 onClick="qa.nowRight = 0">4;<br>
            <input type = "radio" name=q2 onClick="qa.nowRight = 1">5;<br>
        </div>
       
        <input type="button" value="Ответить"  onclick="qa.nextOrResult()"> 
        <script type = "text/javascript">
            var qa = new QuestAnalizer();
            function QuestAnalizer() {
                var now = 0, printed = false, rightCount = 0;
                var questionBlocks = document.querySelectorAll("div.questionBlock");
                var allQCount = questionBlocks.length;
                this.nowRight = 0;
                questionBlocks[now].style.display = "block";
                this.nextOrResult = function () {
                    if (now >= allQCount-1) {
                        now++;
                        if (!printed) {
                            questionBlocks[now - 1].style.display = "none"
                            var p = document.createElement("p");
                            p.innerHTML = "Верных ответов " + rightCount + ". Вы набрали " + (rightCount / allQCount * 100).toFixed(0) + "%";
                            document.body.appendChild(p);
                            printed = true;
                        } else {
                            alert("Ваш результат на экране.");
                        }
                    } else {
                        questionBlocks[now].style.display = "none";
                        now++;
                        rightCount += this.nowRight;
                        questionBlocks[now].style.display = "block";
                    }
                }
            }
            
        </script>
    </body>
</html>
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2013, 23:24
Ответы с готовыми решениями:

Интернет работает, но Chrome и IE не открывают сайты. Firefox работает, но плохо
Добрый день! У меня два компьютера получают интернет от одного роутера. На одном компьютере всё...

Всего одна из страниц сайта плохо работает в IE и Мозилле (абра-кадабра).В Опере все работает.
Привет всем. Сделал небольшой сайтик на HTML и немножко СSS там присутствует. Это мой первый сайт....

Не работает или совсем плохо работает интернет
Здравствуйте! Что-то третий день уже на винде не работает интернет. Так иногда, если долго...

Не работает или плохо работает озу !
с недавнего времени стали такие проблемы ! - часто синий экран смерти пишет &quot;memory management&quot;...

4
Иллюзионист
153 / 152 / 27
Регистрация: 02.10.2013
Сообщений: 330
15.12.2013, 23:44 2
Javascript
1
rightCount += this.nowRight;
Увеличиваем счетчик только в блоке else условия if (now >= allQCount-1). А как же последний клик? now уже равен allQCount-1, а последний вопрос еще не проверен.
0
0 / 0 / 0
Регистрация: 16.12.2013
Сообщений: 16
16.12.2013, 00:19 3
Цитата Сообщение от philin Посмотреть сообщение
Javascript
1
rightCount += this.nowRight;
Увеличиваем счетчик только в блоке else условия if (now >= allQCount-1). А как же последний клик? now уже равен allQCount-1, а последний вопрос еще не проверен.
philin, а не подскажете как исправить? не силен в скриптах, спасибо.
0
Иллюзионист
153 / 152 / 27
Регистрация: 02.10.2013
Сообщений: 330
16.12.2013, 01:06 4
Условия проверяют 3 состояния: тест еще не завершен, тест уже завершен, но результат еще не показан, результат уже показан. Проверять ответ на вопрос нужно в первых двух случаях:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
this.nextOrResult = function () {
    if (now >= allQCount-1) {// тест уже завершен
        now++;
        if (!printed) { // тест завершен, результат еще не показан
            rightCount += this.nowRight; // вот этого здесь не хватало - проверки последнего вопроса
            questionBlocks[now - 1].style.display = "none"
            var p = document.createElement("p");
            p.innerHTML = "Верных ответов " + rightCount + ". Вы набрали " + (rightCount / allQCount * 100).toFixed(0) + "%";
            document.body.appendChild(p);
            printed = true;
        }
        else { // тест уже завершен и результат уже показан
            alert("Ваш результат на экране.");
        }
    }
    else { // тест еще в процессе
        questionBlocks[now].style.display = "none";
        now++;
        rightCount += this.nowRight;
        questionBlocks[now].style.display = "block";
    }
}
1
0 / 0 / 0
Регистрация: 16.12.2013
Сообщений: 16
16.12.2013, 01:19 5
Спасибо еще раз.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2013, 01:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Плохо работает Wi Fi
http://www.microprice.ru/product/a45M3o543043870634d456Ce Очень плохо видит сеть, другие...

Плохо работает интернет
Доброго времени суток ув. форумчане! И так, возник трабл с интернетом на ноутбуке dell inspiron...

Плохо работает fsockopen
Всем привет, делаю свой мониторинг серверов на игру SAMP и сталкнулся с проблемой к запросу...

Плохо работает дисковод
Здравствуйте, возникла проблема с дисководом!!! Суть такова, дисковод отлично читает CD диски и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.