• Как продублировать и вывести отмеченные чек-боксы?

    Reactors
    @Reactors
    <script>
    // схавает пустоту, элемент, или коллекцию элементов.
    function CheckboxCollection (checkboxes) {
        this.checkboxes = checkboxes ? "nodeType" in checkboxes ? [checkboxes] : Array.prototype.slice.call(checkboxes) : [];
    }
    
    // checkboxes = [ /* чекбокс1, чекбокс2, ..., чекбоксN */ ]; <--- массив элементов.
    
    // вернёт собранные в массив значения отмеченных чекбоксов.
    CheckboxCollection.prototype.collectValues = function () {
    
        var i = this.checkboxes.length, buffer = [];
        
        while (i--) {
            if (this.checkboxes[i].checked) {
                buffer.push(this.checkboxes[i].value);
            }
        }
        
        return buffer;
    };
    </script>
    
    <label><input type="checkbox" name="drink" value="beer" id="drink"> Пивко </label>
    <br>
    <input type="checkbox" name="shoes" value="bus" id="shoes"><label for="shoes"> Шина </label>
    <hr>
    
    <input id="output">
    
    <button id="clear">Очистить</button>
    <button id="fill">Заполнить</button>
    
    <script>
    // коллекция чекбоксов.
    var myBoxes = new CheckboxCollection();
    
    // чекбоксы можно добавить так.
    myBoxes.checkboxes.push(document.getElementById("drink"));
    myBoxes.checkboxes.push(document.getElementById("shoes"));
    
    // куда выводим.
    var output = document.getElementById("output");
    
    // клик по кнопке "очистить"
    document.getElementById("clear").onclick = function () {
        output.value = "";
    };
    
    // клик по кнопке "заполнить"
    document.getElementById("fill").onclick = function () {
        output.value = myBoxes.collectValues().join(", ");
    };
    </script>