Есть функция (которая валидирует много чего) - меня ж интересует два куска практически идентичного кода, который проходиться for по группе с checkbox и выводит сообщения с перечнем ошибок для каждой группы отдельное
function populateErrors() {
var reasons = [];
var dragdropChoices = $('.drag-and-drop .choices');
for (var c = 0; c < dragdropChoices.length; c++)
if ($(dragdropChoices[c]).find('input:checkbox:checked').length == 0) {
reasons.push('select at least one correct answer for each <b>drag & drop</b> question');
}
var multipleChoices = $('.multiple-choice .choices');
for (var c = 0; c < multipleChoices.length; c++)
if ($(multipleChoices[c]).find('input:checkbox:checked').length == 0) {
reasons.push('select at least one correct answer for each <b>multiple choice</b> question');
}
return _.uniq(reasons);
}
разметка HTML/Ruby
<div class="activity-content">
<div class="activity-content-item drag-and-drop" id="drag-editor71815805" data-id="46">
<p>Enter answer options:</p>
<div class="choices">
<div class="choice">
<div class="checkbox-switch-wrapper">
<div class="checkbox-switch "><span></span></div>
<input type="checkbox" value="1" name="activity[item_attributes][questions_attributes][][content][choices][][correct]">
</div>
</div>
<div class="choice">
<div class="checkbox-switch-wrapper">
<div class="checkbox-switch "><span></span></div>
<input type="checkbox" value="1" name="activity[item_attributes][questions_attributes][][content][choices][][correct]">
</div>
</div>
<div class="choice">
<div class="checkbox-switch-wrapper">
<div class="checkbox-switch "><span></span></div>
<input type="checkbox" value="1" name="activity[item_attributes][questions_attributes][][content][choices][][correct]">
</div>
</div>
</div>
</div>
<div class="activity-content-item multiple-choice" id="choice-editor6345333" data-id="47">
<p>Enter answer options:</p>
<div class="choices">
<div class="choice">
<div class="checkbox-switch-wrapper">
<div class="checkbox-switch "><span></span></div>
<input type="checkbox" value="1" name="activity[item_attributes][questions_attributes][][content][choices][][correct]">
</div>
</div>
<div class="choice">
<div class="checkbox-switch-wrapper">
<div class="checkbox-switch "><span></span></div>
<input type="checkbox" value="1" name="activity[item_attributes][questions_attributes][][content][choices][][correct]">
</div>
</div>
<div class="choice">
<div class="checkbox-switch-wrapper">
<div class="checkbox-switch "><span></span></div>
<input type="checkbox" value="1" name="activity[item_attributes][questions_attributes][][content][choices][][correct]">
</div>
</div>
</div>
</div>
</div>
как сократить этот повторяющийся код?