При формировании данных возникла проблема. Необходимо данные поместить в объект, точнее в ассоциативный массив, содержащийся в объекте. Это можно сделать с помощью .serializeArray()
и передать в объект, где есть предусмотренный метод set..., такой способ я и привел в примере кода ниже. Но мне кажется это способ не очень хороший и правильный, и хочется, чтобы было профессионально сделано.
Код для первого скрина:
<div id="tab1" >
<div class="row">
<div class="col-xs-10"><h3>Описание</h3></div>
<div class="col-xs-2"><button type="button" id="step1" class="next btn btn-success pull-right">Далее</button></div>
</div>
<form id="descrip">
<div class="form-group">
<label for="titleT">Название теста:</label>
<input type="text" class="form-control" name="titleT" placeholder="Название теста" />
</div>
<div class="form-group">
<label for="descripT">Описание теста:</label>
<textarea class="form-control" name="descripT" placeholder="Описание теста"></textarea>
</div>
<div class="form-group">
<label for="tarAidience">Выберите целивую аудиторию:</label>
<select name="tarAidience" class="form-control">
<option value="teach">Преподаватели</option>
<option value="stud">Студенты/абитуриенты</option>
<option value="all">Для всех</option>
</select>
</div>
<div class="form-group">
<label class="checkbox-inline"><input type="checkbox" name="answer">Проверять ответы</label>
</div>
</form>
</div>
Код для второго скрина:
<div class="">
<form id="Questions">
<div class="form-group">
<label for="question">Вопрос:</label>
<input type="text" name="" id="question" class="form-control" placeholder="Введите вопрос" />
</div>
<div class="row">
<div class="form-group col-xs-10">
<label>Выбирете тип вопроса:</label>
// Тут типы вопросов. Убрал т.к. и так много текста
</div>
<div class="col-xs-2">
<div class="pull-right btn btn-success" id="addBtn"><span class="addimg"></span></div>
</div>
</div>
</form>
</div>
JS-код, предполагаемый объект
// Объект тест. Все данные и их обработка происходят здесь.
function test() {
// Вспомагательная переменная заменяющая this
var self = this;
// Основная информация о тесте, такая как
// Название теста, описание, орентация на аудиторию,
// Флаг проверкии ответов.
var aboutTest = {
// Название теста
'title': '',
// Описание теста
'description': '',
// Орентация теста(препод., студ./абитур.)
'testFor' : '',
// Флаг проверки ответов(true/false)
'checkAnsw' : '',
};
// Данные о вопросах, включают в себя
// О самом вопросе, типе ответа, вариантах ответа
// Правильных ответах, если установлен соответ. флаг
// В массиве *aboutTest['checkAnsw']
var Qustion = {
// ИД вопроса/его номер
'id': '',
// Сам вопрос
'itselfQ' : '',
// Тип вопроса
// Один ответ = type1, несколько = type2 , пронумеровать = type3,
// В свободной форме = type4, сопастовление = type5
'typeAnswer' : '',
// Массив вариантов ответа. Загружаются после добавления вопроса.
'VarAnswer' : { // ИД вопроса/его номер
'id': '',
// Сам вопрос
'itselfQ' : '', },
// Массив правильных ответов. Загружаются после добавления вопроса.
'Answer' : {// ИД вопроса/его номер
'id': '',
// Сам вопрос
'itselfQ' : '', },
}
//******************************************
// Проверка и фильтрация введенных данных*
function checkerr() {
}
// Установка инфор. о тесте. Принимает данные
// Ввиде ассоциативного массива
self.setAboutTest = function (dataAbout) {
}
// Установка вопроса.Принимает данные
// Ввиде ассоциативного массива
self.setQustion = function(dataQustion) {
}
self.print = function() {
console.log(aboutTest);
console.log(Qustion);
}
}
Вариант с .serializeArray()
мне кажется будет не удобным при использовании, с использованием jQuery, можешь сделать что-то подобное:
var forms = {};
function getFormArray($form) {
// соберет объет вида {name: value, name: value}
var formData = {};
$form.find(':input').each(function() {
formData[this.name] = this.value;
})
return formData;
}
$('form :input').on('change', function() {
var $this = $(this);
forms[$this.parents('form').attr("id")] = getFormArray($this);
})
в forms
у тебя будут храниться все данные по разным формам, если захочешь получить данные, обращаешься forms.Questions.name
Виртуальный выделенный сервер (VDS) становится отличным выбором
Создать класс City (город) с внутренним классом, с помощью объектов которого можно хранить информацию о проспектах, улицах, площадях
Всем привет, у меня возникла ошибка вот в этом куске кода :
Использую библиотеку Speech для реализации "Сири" xD Вот код: