В моем примере каждый div с идентификатором содержит элементы управления для ответа пользователя (радиогруппа). Я пытаюсь подсчитать количество DIV, в которых пользователь предоставил ответ и подал результат в текстовое поле [name = "REP"]. Либо "Да", либо "Нет" приемлемо для ответа на подсчет.
Структура HTML:
<div class="figures">
<div id="Template_Questions">
<label for="number1">Number of ALL items:</label>
<input class="counter" type="number" name="ALL" id="number1">
</div>
<div id="Responded_Questions">
<label for="number2">Number of RESPONDED items:</label>
<input class="counter" type="number" name="RESP" id="number2">
</div>
</div>
<div class="sections"><p>Sections</p>
<div class="A" id="Q01">
<h2>Section 1</h2>
<h5>4201</h5>
<div class="Response">
<label><input type="radio" name="Radio1" value="Y" id="R1Y">Yes</label>
<label><input type="radio" name="Radio1" value="N" id="R1N">No</label>
</div>
<div class="Observation">
<label for="Obs1">Notes:</label><br>
<textarea name="observation" id="Obs1"></textarea>
</div>
</div>
<div class="B" id="Q02">
<h2>Section 2</h2>
<h5>4202</h5>
<div class="Response">
<label><input type="radio" name="Radio2" value="Y" id="R2Y">Yes</label>
<label><input type="radio" name="Radio2" value="N" id="R2N">No</label>
</div>
<div class="Observation">
<label for="Obs2">Notes:</label><br>
<textarea name="observation" id="Obs2"></textarea>
</div>
</div>
<div class="A" id="Q03">
<h2>Section 3</h2>
<h5>4203</h5>
<div class="Response">
<label><input type="radio" name="Radio3" value="Y" id="R3Y">Yes</label>
<label><input type="radio" name="Radio3" value="N" id="R3N">No</label>
</div>
<div class="Observation">
<label for="Obs3">Notes:</label><br>
<textarea name="observation" id="Obs3"></textarea>
</div>
</div>
<div class="B" id="Q04">
<h2>Section 4</h2>
<h5>4204</h5>
<div class="Response">
<label><input type="radio" name="Radio4" value="Y" id="R4Y">Yes</label>
<label><input type="radio" name="Radio4" value="N" id="R4N">No</label>
</div>
<div class="Observation">
<label for="Obs4">Notes:</label><br>
<textarea name="observation" id="Obs4"></textarea>
</div>
</div>
</div>
Я подсчитал общее количество DIV, содержащих элементы управления ответами:
jQuery(function ($) {
$(function () {
var counter = $("[id^=Q]").filter(function ()
{
return this.id.match(/Q\d+/);
}).length;
$("input[name=ALL]").val(counter);
})});
Я думаю, что я также могу получить количество проверенных элементов управления, но на самом деле нужно количество DIV. С другой стороны, если ЛЮБОЙ из радио btns (или Да или Нет) = 1, то что-то вроде этого должно сделать трюк, а затем просто передать номер в текстовое поле?
$("#Div input:checkbox:checked").length
Заранее спасибо.
так как только один вход может быть проверен в каждом div, вы можете просто использовать что-то вроде этого
$('input[type="radio"]:checked').length
UPDATE: счетчик автоматического обновления в текстовом поле с использованием события изменения ввода
$('input[type="radio"]').change(function(){
$('#textfield-id').val( $('input[type="radio"]:checked').length );
});