В принципе, у меня есть большая строка, которую я раскалываю, а затем снова разделяю.Как вставить строку в массив текстовых входов?
Затем мне нужно использовать самый маленький разделительный массив, чтобы поместить его элементы в текстовые входы на моей странице.
Это мой Javascript
var splitquestions = vals[2].split('\n');
//Loop to go through all current questions
for (var i = 0; i < splitquestions.length - 1; i++)
{
//trigger a question add where a single question data can be added into
$("#add").trigger('click');
//split current question into separate items
var s = splitquestions[i].split(',');
//Loop to go over all sections in a question
var count = 0;
for(var j = 0; j < s.length; j++)
{
count = count + 1;
var qs = document.getElementById('questions[' + j +'][' + count + ']').value;
qs = s[j];
}
}
Там будет много вопросов, на странице, в зависимости, сколько пользователь хотел бы добавить. Каждый новый вопрос будет состоять из вопроса, 3 неправильных ответов и 1 правильный ответ.
Часть, которая идет не так, находится в последнем цикле. Здесь мне нужно захватить каждый отдельный элемент в массиве 's' и поместить его в каждый текстовый ввод.
Это как отображаются необработанные данные, прежде чем он расщепляется переменной «splitquestions»:
question1,incorrect-answer1,incorrect-answer2,incorrect-answer3,correct-answer
question2,incorrect-answer1,incorrect-answer2,incorrect-answer3,correct-answer
question3,incorrect-answer1,incorrect-answer2,incorrect-answer3,correct-answer
Как вы можете видеть выше, каждый вопрос отделяется разрывом строки, будучи \ п , то каждая отдельная часть разделяется запятой.
Каждый ввод вопросов содержит переменную многомерного значения, присвоенную ее идентификатору. Например, используя приведенные выше данные, первая строка данных вместе с самым первым элементом (вопрос 1) будет вопросом [1] [1]. Другим примером может быть «неправильный ответ1» на третьей строке данных, что было бы вопросом [3] [2]. Первое число - номер вопроса, а второе число - номер элемента.
Надеюсь, что я объяснил это достаточно хорошо, так как я немного запутался в том, как объяснить это сам, так как я новичок в многомерных массивах и циклах внутри циклов. Поэтому, пожалуйста, если вам нужна дополнительная информация, просто отправьте комментарий, и я сделаю все возможное.
При необходимости, это функция, которая создает элементы динамически вопрос:
function dynamicForm() {
//set a counter
var i = $('.dynamic-input#form-step2').length + 1;
//alert(i);
//add input
$('a#add').click(function() {
$('<table><tr><td><p><span class="left"><input type="text" class="dynamic-input" name="questions[' +i +'][1]" id="' + i + '" placeholder="Question" /></span>' + '<span class="right"><input type="text" class="dynamic-input" name="questions[' +i +'][2]" id="' + i + '" placeholder="Distraction 1" /><br /><input type="text" class="dynamic-input" name="questions[' +i +'][3]" id="' + i + '" placeholder="Distraction 2" /><br /><input type="text" class="dynamic-input" name="questions[' +i +'][4]" id="' + i + '" placeholder="Distraction 3" /><br /><input type="text" class="dynamic-input" name="questions[' +i +'][5]" id="' + i + '" placeholder="Correct Answer" /><br /><a href="#">Remove</a></span></p></td></tr></table>').fadeIn("slow").appendTo('#extender');
i++;
$("a:contains('Remove')").click(function() {
$(this).parent().parent().remove();
});
return false;
});
//fadeout selected item and remove
$("#form-step2.dynamic-input").on('click', 'a', function() {
$(this).parent().fadeOut(300, function() {
$(this).empty();
return false;
});
});
}
Может у имитировать то же самое на Jsfiddle, http: //jsfiddle.net – dreamweiver
@dreamweiver - Я думаю, что будет далеко трудно, так как есть много других функций, которые участвуют – Fizzix
я думаю, вы можете просто включить соответствующие функции, которые определяют сферу действия вашей проблемы – dreamweiver