(function ($) { if ($.fn.drapper === undefined) { throw "$.drapper plugin hasn't been required" + "This plugin depends on 'jquery.drapper' plugin. " + "See https://github.com/aratak/jquery.drapper/ for details."; } $.drappers['submitGroup'] = function () { var decoree = this; var name = $(decoree).attr('name'); if (name === undefined || name.length === 0) { throw "drapper element submitGroup without 'name' attribute"; } var Buttons = (function () { function Buttons(options, name) { this.buttons = $(options).map(function (index, option) { var button = $('<button></button>')[0]; $(button).attr('name', name); $(button).val($(option).val()); $(button).html($(option).html()); return button; }); } Buttons.prototype.toHTML = function () { return $(this.buttons); }; return Buttons; }()); var buttons = new Buttons(decoree.children, $(decoree).attr('name')); decoree.wrapper().append(buttons.toHTML()); $(decoree).remove(); }; }(jQuery));