Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.04.2014, 10:22
Интересующийся
Отправить личное сообщение для Jekins Посмотреть профиль Найти все сообщения от Jekins
 
Регистрация: 14.03.2013
Сообщений: 12

Доработка теста на javascript
Всем привет.
Никак не могу закончить функционал теста на javascript.
Суть теста проста, есть вопрос, ответы и список результатов. При выборе ответа он отнимает/прибавляет значения к результатам, т.е. каждый ответ, по своему влияет сразу на весь массив результатов. В итоге, подсчитывается сумма всех баллов для каждого результата и 3 с наибольшим количеством выдаются пользователю.
Я написал скрипт структуры и влияния ответов на результаты, а так же вывод вопросов и ответов к ним. Но никак не могу понять, как теперь связать выбранный ответ с сабмитом и при клике на кнопку сабмит, произвести экшин этого ответа, который произведёт начисление балов результатам.

Очень прошу у вас помощи.
Вот что у меня получилось на данный момент (вопросы в рабочей версии, буду выводиться по очереди, а не все сразу):

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta charset="utf-8">
        <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
    </head>
    <body>
        <script>

			var driver = {
				title: 'водитель',
				result: 0
			};
			var spaceman = {
				title: 'космонафт',
				result: 0
			};
			var doctor = {
				title: 'доктор',
				result: 0
			};

			var question = [
				{
					indicator: 1,
					title: "вам нравится водить больше чем летать?",
					answers: [
						{
							title: "да",
							action: function() {
								driver.result = driver.result + 1;
								spaceman.result = spaceman.result - 1;
								doctor.result = doctor.result + 1;
							}
						},
						{
							title: "нет",
							action: function() {
								driver.result = driver.result - 1;
								spaceman.result = spaceman.result + 1;
								doctor.result = doctor.result - 1;
							}
						}
					]
				},
				{
					indicator: 2,
					title: "нравится лечить людей?",
					answers: [
						{
							title: "да",
							action: function() {
								driver.result = driver.result - 1;
								spaceman.result = spaceman.result - 1;
								doctor.result = doctor.result + 1;
							}
						},
						{
							title: "нет",
							action: function() {
								driver.result = driver.result + 1;
								spaceman.result = spaceman.result + 1;
								doctor.result = doctor.result - 1;
							}
						},
						{
							title: "не знаю",
							action: function() {
								driver.result = driver.result - 2;
								spaceman.result = spaceman.result - 2;
								doctor.result = doctor.result - 1;
							}
						}
					]
				}
			];
			function showAnswer(answerTitle, answerName, valueId) {
				var context = '<label class="radio">' +
						'<input type="radio" name="answer' + answerName + '" value="val' + valueId + '">' +
						answerTitle.title +
						'</label>';

				$('#content').append(context);
			}

			function showSection(id) {
				var q = question[id];
				var a = q.answers[id];
				var ind = q.indicator;

				if (q.answers.length > 0) {
					$('#content').append('<h3>' + q.title + '</h3>');
					for (var i = 0; i < q.answers.length; i++) {
						showAnswer(q.answers[i], ind, i);
					}
				}
			}

			$(document).ready(function() {
				showSection(0);
				showSection(1);
			});


			function check_me() {
				with (document.test) {
//					if ($('input').is(':checked')) {
//						question[0].answers[0].action();
//						console.log(driver.result);
//						console.log(spaceman.result);
//						console.log(doctor.result);
//					}
				}
			}

        </script>

        <form method="post" name="test">
            <section id="content">
            </section>
        </form>
		<br /><br />
        <input onclick="check_me()" type="button" value="Показать результат"/>
    </body>
</html>

Последний раз редактировалось Jekins, 14.04.2014 в 10:25.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание теста средствами JavaScript nld Internet Explorer 2 09.04.2014 10:42
Ротатор баннеров на JavaScript - Требуется доработка (ПЛЗ) stixia007 Общие вопросы Javascript 6 27.01.2013 15:04
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
Доработка javascript для IE villipuk Internet Explorer 0 03.04.2010 10:27