Проблемка с if() {}
Вот код:
<html> <head> <script type="text/javascript"> function showById(id, visible) { document.getElementById(id).style.display = visible ? 'block' : 'none' } function processForm(f) { var i, s='', el var questions = new Object() var answers = new Object() for (i=0; i<f.length; i++) { el = f.elements[i] if (el.type=='radio' && el.name.indexOf('Вопрос-')==0) { questions[el.name] = 0 if (el.checked) answers[el.name] = parseInt(el.value) } } s = '\n' var asked = 0, answered = 0, score = 0 for (i in questions) asked++ for (i in answers) { s += '\n' + i + ' = ' + answers[i] + ' ' answered++ score += answers[i] } alert( 'Отвечено на '+ answered + ' из ' + asked + ' вопросов' + s + '\n' + '\nВаша оценка = ' + score ) if (answered < asked) { alert('Вы ответили на '+answered+' вопросов из '+asked+'. Для получения достоверного результата нужно ответить на все воросы') } else { showById('questionsForm', false) el = document.getElementById('score') el.innerHTML = (score>0) ? '+'+score : score showById('results', true) if (score > 0) showById('explain-positive', true) else if (score < 0) showById('explain-negative', true) else if (score == 0) showById('explain-zero', true) } } function resetTest() { showById('results', false) showById('questionsForm', true) document.forms['opros'].reset() } </script> </head> <body> <h2>Опрос</h2> <div id="questionsForm"> <form name="opros"> <p/> <strong>1.</strong><br/>Ты ежик.<br/> <input type="radio" name="Вопрос-1" value="3" id="q1a1"/><label for="q1a1">Скорее "да"</label> <input type="radio" name="Вопрос-1" value="0" id="q1a2"/><label for="q1a2">Скорее "нет"</label> <br/> <hr/> <p/> <strong>2.</strong><br/>У нормального ежика 3 головы.<br/> <input type="radio" name="Вопрос-2" value="3" id="q2a1"/><label for="q2a1">Скорее "да"</label> <input type="radio" name="Вопрос-2" value="0" id="q2a2"/><label for="q2a2">Скорее "нет"</label> <hr/> <p/> <strong>3.</strong><br/>А если подумать?<br/> <input type="radio" name="Вопрос-3" value="3" id="q3a1"/><label for="q3a1">Скорее "да"</label> <input type="radio" name="Вопрос-3" value="0" id="q3a2"/><label for="q3a2">Скорее "нет"</label> <hr/> <p/> <strong>4.</strong><br/>Хочешь три яблочка?<br/> <input type="radio" name="Вопрос-4" value="2" id="q4a1"/><label for="q4a1">Скорее "да"</label> <input type="radio" name="Вопрос-4" value="0" id="q4a2"/><label for="q4a2">Скорее "нет"</label> <hr/> <p/> <input type="button" value="Отправить" onClick="processForm(this.form)"/> <input type="reset" value="Очистить"></input> </form> </div> <hr/> <div id="results" style="display: none;"> <h3>Ваш результат: <span id="score" style="font-size: 160%"></span></h3> <div id="explain-positive" style="display: none;"> <!-- Здесь расшифровка для положительного результата --> <p>Поздравляем! Положительный результат говорит, что вы, как минимум, ежик.</p> </div> <div id="explain-negative" style="display: none;"> <!-- Здесь расшифровка для отрицательного результата --> <p>Блеск! Никогда не видел, чтоб ежики так здорово отвечали.</p> </div> <div id="explain-zero" style="display: none;"> <!-- Здесь расшифровка для нулевого результата --> <p>Удивительно! Нулевой результат - редкость. Одно из двух: вы либо еж-зануда, либо зубная щетка!</p> </div> <hr/> <p>Спасибо за участие в тестировании, йооожик :0)</p> <input type="button" value="Начать заново" onClick="resetTest()"/> </div> </body> </html> Хочу здесь сделать так: for (i in answers) { s += '\n' + i + ' = ' + answers[i] + ' ' answered++ score += answers[i] } Если (answers[i] == 2 || answers[i] == 3 || answers[i] == 4) то ' балла ' иначе ' баллов ' Пишу я: if(answers[i] == 2 || answers[i] == 3 || answers[i] == 4) {'балла'}else{'баллов'} Но ничего не получается! Помогите может ошибка в синтаксисе или неправильно делаю? |
"балл" + (answers[i] >= 2 && answers[i] <= 4 ? "а" : "ов") |
конечно неправильно -орентируйся что логика всегда или и всё, а не или или или.....
мож тож с помощью swich- case сделать у тебя твои значения позволяют но вариантexec, красив) ну не считая того что это php.но я могу и ошибаться |
Пасибо большое, я понял в чем ошибка была!
И спс за идею!)) |
Еще вопрос как можно с выводом баллов(не в alert) добавить ниже какой ответ правильный а какой нет?
|
Здесь глянь-там подобное и два варианта решения
http://javascript.ru/forum/misc/1335...html#post81035 |
Часовой пояс GMT +3, время: 17:24. |