Изменение html кода внутри jQuery

129
18 января 2020, 07:50

Пытаюсь написать простую анкету. При создании анкеты динамически добавляю вопросы, хочу сделать так чтобы можно было выбрать тип ответа: либо просто текст, либо список вариантов. Вопрос я добавляю внутри . Соответственно ответ я должна добавлять там же.

Как я могу правильно получить элемент из question? Есть переменная question, в которой хранится html вопроса, предполагается добавление поля ответа происходить по нажатию на тип ответа, элемент answerAsText. Как правильно из переменной question получить кнопку добавления ответа?

$(document).ready(function() { 
 
  var questionArr = []; 
 
  $("#addQuestion").click(function() { 
    var i = 1; 
 
    var question = '<div id="q' + i + '" class="card border-info mb-3 mt-3" style="width: 48rem;" name="qContainer" >\n' + 
      '            <div class="card-body">\n' + 
      '                <div class="form-inline mt-3" id="questionNavBar">\n' + 
      '                    <input class="form-control col-sm-9 mr-2" type="text" name="question" id="question">\n' + 
      '                    <div class="btn-group" role="group">\n' + 
      '                        <button id="btnGroupDrop1" type="button" class="btn btn-outline-info dropdown-toggle answerType mr-2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n' + 
      '                            Answer type\n' + 
      '                        </button>\n' + 
      '                        <div class="dropdown-menu mr-2" aria-labelledby="btnGroupDrop1">\n' + 
      '                            <button class="dropdown-item" name="answerAsText" id="answerAsText" type="button">Text</button>\n' + 
      '                            <button class="dropdown-item" id="answerAsList" type="button">List</button>\n' + 
      '                        </div>\n' + 
      '                    </div>\n' + 
      '                    <a href="#" role="button" class="btn btn-outline-info removeQuestion">-</a>\n' + 
      '                </div>\n' + 
      '            </div>\n' + 
      '        </div>'; 
 
    $("#questions").append(question); 
 
 
    console.log(question.type); 
    questionArr.push(question); 
    i++; 
 
  }); 
 
  $("#create").click(function() { 
    $.ajax({ 
      dataType: "json", 
      url: "/newQue", 
      headers: { 
        'Accept': 'application/json', 
        'Content-Type': 'application/json' 
      }, 
      data: questionArr, 
      type: 'POST' 
    }) 
  }) 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<form action="/newQue" method="post"> 
  <div> 
    <input type="hidden" name="_csrf" value="${_csrf.token}" /> 
    <input type="text" name="queName" class="form-control col-6 mb-3" placeholder="Enter name of que"> 
    <input type="hidden" name="_csrf" value="${_csrf.token}" /> 
    <input type="text" name="queDescription" class="form-control col-6 mb-3" placeholder="Enter description"> 
  </div> 
 
  <div id="buttonBar" class="btn-group" role="group" aria-label="Basic example"> 
    <input type="hidden" name="_csrf" value="${_csrf.token}" /> 
    <input type="button" class="btn btn-secondary" id="addQuestion" value="+" /> 
    <input type="button" class="btn btn-secondary" id="prompts" value="?" /> 
  </div> 
 
  <div class="questions mb-3" id="questions" model-attribute="questionsForm"> 
  </div> 
 
  <button type="submit" class="btn btn-outline-info mb-3" id="create">Create</button> 
</form>

READ ALSO
Как добавить поле процент в rangeSlider?

Как добавить поле процент в rangeSlider?

Создаю новое поле в rangeSlider но из за не знания "как это сделать" столкнулся с проблемой Вот попытка :

153
Создать DBF-файл из таблицы postgre

Создать DBF-файл из таблицы postgre

Всем привет! Нужна ваша помощьПроект над которым я работаю на

131
Как отобразить WPF контрол на панели задач Windows?

Как отобразить WPF контрол на панели задач Windows?

Есть приложение на WPF и появилась необходимость в подобного рода "виджете" на панели задач, как на скринах ниже

115
Отправка документа на печать

Отправка документа на печать

На сервере генерирую документ excel и отправляю его на клиентское приложениеДля генерации использую библиотеку ASPOSE

136