Я настраиваю приложение для викторины, где поле выбора (множественный выбор) динамически добавляется с использованием набора форм django.Этот выбор - тип флажка, я хочу передать значение в текстовое поле, если я установил флажок. Моя проблема в том, что я не могу написать функцию для установки значения в текстовое поле, потому что флажок является динамическим.
я пыталсячтобы получить общее количество флажков, отображаемых на странице и создаваемых таким образом, также текстовое поле.Я попробовал jquery, который установит val в текстовое поле, если я установил флажок.Написание кода для каждого флажка невозможно, потому что флажок это динамический. Есть ли в JavaScript какой-либо метод, чтобы заставить его работать.
test.html
<form action="{% url 'polls:checkanswer' question.id %}" method="post">
{% csrf_token %}
{% for choice in question.testchoice_set.all %}
<input type="checkbox" name="choice" id="choices{{ forloop.counter }}" value="{{ choice.id }}" />
<label for="choice{{ forloop.counter }}">{{ choice.choice_opt }}</label><br />
{% endfor %}
<input type="submit" value="Vote" />
<input type="text" name="nvalue" id="nvalue">
</form>
<script>
var totalCheckboxes = $('input:checkbox').length;
$("#nvalue").val(totalCheckboxes);
var i;
//dynamically creating textboxes based on no of checkbox
for (i = 1; i <= totalCheckboxes ; i++) {
m = i;
var i = document.createElement("input");
i.type = "text";
document.body.appendChild(i);
i.value = "";
//i.hidden = true;
i.id = 'choice'+m;
i = m;
}
//set value to text field, if first checkbox is checked.
$("#choices1").click(function () {
if ($(this).prop("checked")) {
$("#choice1").val("Yes");
}
else {
$("#choice1").val("No");
}
});
Если я установил какие-либо флажки на странице, мне нужно установить «да» для соответствующего текстового поля.