Показать сообщение отдельно
  #1 (permalink)  
Старый 27.11.2010, 21:31
Аватар для karakym
Профессор
Отправить личное сообщение для karakym Посмотреть профиль Найти все сообщения от karakym
 
Регистрация: 21.02.2010
Сообщений: 213

Проблемка с 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{'баллов'}

Но ничего не получается!
Помогите может ошибка в синтаксисе или неправильно делаю?
Ответить с цитированием