Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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{'баллов'}

Но ничего не получается!
Помогите может ошибка в синтаксисе или неправильно делаю?
Ответить с цитированием
  #2 (permalink)  
Старый 27.11.2010, 21:45
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

"балл" + (answers[i] >= 2 && answers[i] <= 4 ? "а" : "ов")
Ответить с цитированием
  #3 (permalink)  
Старый 27.11.2010, 21:53
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

конечно неправильно -орентируйся что логика всегда или и всё, а не или или или.....
мож тож с помощью swich- case сделать у тебя твои значения позволяют но вариантexec,
красив) ну не считая того что это php.но я могу и ошибаться

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

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

Еще вопрос как можно с выводом баллов(не в alert) добавить ниже какой ответ правильный а какой нет?
Ответить с цитированием
  #6 (permalink)  
Старый 27.11.2010, 22:43
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Здесь глянь-там подобное и два варианта решения
Объясните я начинающий!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблемка jquery form + jquery 1.4 PooH63 jQuery 2 02.04.2010 11:24
Работа со стилями CSS (возникла проблемка) ExtendedPlay Events/DOM/Window 13 23.12.2009 19:19
Динамический JavaScript проблемка... andrys2007 Events/DOM/Window 3 06.12.2009 13:40
FF и IE - проблемка.... Ilja_ORDY Общие вопросы Javascript 5 17.09.2008 09:22
проблемка с классом magistr_bender AJAX и COMET 13 15.09.2008 20:43