"form builder"
Bootstrap 3.0.0 Snippet by evarevirus

<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!------ Include the above in your HEAD tag ----------> <!DOCTYPE html><html lang='en' class=''> <head><script src='//production-assets.codepen.io/assets/editor/live/console_runner-079c09a0e3b9ff743e39ee2d5637b9216b3545af0de366d4b9aad9dc87e26bfd.js'></script><script src='//production-assets.codepen.io/assets/editor/live/events_runner-73716630c22bbc8cff4bd0f07b135f00a0bdc5d14629260c3ec49e5606f98fdd.js'></script><script src='//production-assets.codepen.io/assets/editor/live/css_live_reload_init-2c0dc5167d60a5af3ee189d570b1835129687ea2a61bee3513dee3a50c115a77.js'></script><meta charset='UTF-8'><meta name="robots" content="noindex"><link rel="shortcut icon" type="image/x-icon" href="//production-assets.codepen.io/assets/favicon/favicon-8ea04875e70c4b0bb41da869e81236e54394d63638a1ef12fa558a4a835f1164.ico" /><link rel="mask-icon" type="" href="//production-assets.codepen.io/assets/favicon/logo-pin-f2d2b6d2c61838f7e76325261b7195c27224080bc099486ddd6dccb469b8e8e6.svg" color="#111" /><link rel="canonical" href="https://codepen.io/srmooney/pen/QNmpXR?limit=all&page=7&q=formBuilder" /> <style class="cp-pen-styles">body { font-family: arial; } @font-face { font-family: 'formBuilder'; src: url('data:application/font-woff;base64,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') format('woff'), url('data:application/octet-stream;base64,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UlggPFkusSsBFCstsDwsIyAuRrACJUZQWCA8WS6xKwEUKy2wPSwjIC5GsAIlRlJYIDxZIyAuRrACJUZQWCA8WS6xKwEUKy2wPiywNSsjIC5GsAIlRlJYIDxZLrErARQrLbA/LLA2K4ogIDywBCNCijgjIC5GsAIlRlJYIDxZLrErARQrsARDLrArKy2wQCywABawBCWwBCYgLkcjRyNhsAlDKyMgPCAuIzixKwEUKy2wQSyxCAQlQrAAFrAEJbAEJSAuRyNHI2EgsAQjQrAJQysgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjIEewBEOwAmIgsABQWLBAYFlmsAFjYCCwASsgiophILACQ2BkI7ADQ2FkUFiwAkNhG7ADQ2BZsAMlsAJiILAAUFiwQGBZZrABY2GwAiVGYTgjIDwjOBshICBGI0ewASsjYTghWbErARQrLbBCLLA1Ky6xKwEUKy2wQyywNishIyAgPLAEI0IjOLErARQrsARDLrArKy2wRCywABUgR7AAI0KyAAEBFRQTLrAxKi2wRSywABUgR7AAI0KyAAEBFRQTLrAxKi2wRiyxAAEUE7AyKi2wRyywNCotsEgssAAWRSMgLiBGiiNhOLErARQrLbBJLLAII0KwSCstsEossgAAQSstsEsssgABQSstsEwssgEAQSstsE0ssgEBQSstsE4ssgAAQistsE8ssgABQistsFAssgEAQistsFEssgEBQistsFIssgAAPistsFMssgABPistsFQssgEAPistsFUssgEBPistsFYssgAAQCstsFcssgABQCstsFgssgEAQCstsFkssgEBQCstsFossgAAQystsFsssgABQystsFwssgEAQystsF0ssgEBQystsF4ssgAAPystsF8ssgABPystsGAssgEAPystsGEssgEBPystsGIssDcrLrErARQrLbBjLLA3K7A7Ky2wZCywNyuwPCstsGUssAAWsDcrsD0rLbBmLLA4Ky6xKwEUKy2wZyywOCuwOystsGgssDgrsDwrLbBpLLA4K7A9Ky2waiywOSsusSsBFCstsGsssDkrsDsrLbBsLLA5K7A8Ky2wbSywOSuwPSstsG4ssDorLrErARQrLbBvLLA6K7A7Ky2wcCywOiuwPCstsHEssDorsD0rLbByLLMJBAIDRVghGyMhWUIrsAhlsAMkUHiwARUwLQBLuADIUlixAQGOWbABuQgACABjcLEABUKyAAEAKrEABUKzCgIBCCqxAAVCsw4AAQgqsQAGQroCwAABAAkqsQAHQroAQAABAAkqsQMARLEkAYhRWLBAiFixA2REsSYBiFFYugiAAAEEQIhjVFixAwBEWVlZWbMMAgEMKrgB/4WwBI2xAgBEAAA=') format('truetype'), url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtZXRhZGF0YT5Db3B5cmlnaHQgKEMpIDIwMTYgYnkgb3JpZ2luYWwgYXV0aG9ycyBAIGZvbnRlbGxvLmNvbTwvbWV0YWRhdGE+CjxkZWZzPgo8Zm9udCBpZD0iZm9udGVsbG8iIGhvcml6LWFkdi14PSIxMDAwIiA+Cjxmb250LWZhY2UgZm9udC1mYW1pbHk9ImZvbnRlbGxvIiBmb250LXdlaWdodD0iNDAwIiBmb250LXN0cmV0Y2g9Im5vcm1hbCIgdW5pdHMtcGVyLWVtPSIxMDAwIiBhc2NlbnQ9Ijg1MCIgZGVzY2VudD0iLTE1MCIgLz4KPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjEwMDAiIC8+CjxnbHlwaCBnbHlwaC1uYW1lPSJjaGVjay1zcXVhcmUtMSIgdW5pY29kZT0iJiN4MjE7IiBkPSJNODc1IDQ2M3YtNDg4aC03NTB2NzUwaDY1Nmw2MyA2M2gtNzgxdi04NzZoODc1djYxM3ogbS0zODEtMjk0bC0yNjMgMjYyIDk0IDg4IDE2OS0xNzUgNDE5IDQxOSA4Ny04OHoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgoKPGdseXBoIGdseXBoLW5hbWU9ImNoZWNrLXNxdWFyZSIgdW5pY29kZT0iJiN4MjI7IiBkPSJNODEzIDc5NGwtNjMtNjloLTc1MHYtODc1aDg3NXY2NTZsMTA2IDEyNS0xNjggMTYzeiBtLTQwNy02NzVsLTI2MiAyNjIgODcgODggMTY5LTE2OSA0MTMgNDEzIDg3LTg4LTQ5NC01MDZ6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJkb3QtaW5zaWRlLWEtY2lyY2xlIiB1bmljb2RlPSImI3gyMzsiIGQ9Ik01MDAgNjAwYy0xMzcgMC0yNTAtMTEyLTI1MC0yNTBzMTEzLTI1MCAyNTAtMjUwIDI1MCAxMTMgMjUwIDI1MC0xMTIgMjUwLTI1MCAyNTB6IG0wIDE4OGMyNDQgMCA0MzgtMTk0IDQzOC00MzhzLTE5NC00MzgtNDM4LTQzOC00MzcgMTk0LTQzNyA0MzggMTkzIDQzOCA0MzcgNDM4eiBtMCA2MmMtMjc1IDAtNTAwLTIyNS01MDAtNTAwczIyNS01MDAgNTAwLTUwMCA1MDAgMjI1IDUwMCA1MDAtMjI1IDUwMC01MDAgNTAwdjB6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJpbnB1dCIgdW5pY29kZT0iJiN4MjQ7IiBkPSJNMTAwMCA1MzhjMCAzNy0yNSA2Mi02MiA2MmgtODc1Yy0zOCAwLTYzLTI1LTYzLTYydi0zNzVjMC0zOCAyNS02MyA2My02M2g4NzVjMzcgMCA2MiAyNSA2MiA2M3YzNzV6IG0tNjItMzc1aC04NzV2Mzc1aDg3NXYtMzc1eiBtLTgxMyAzMTJoNjN2LTI1MGgtNjN2MjUweiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0icGFyYWdyYXBoIiB1bmljb2RlPSImI3gyNTsiIGQ9Ik0zNDQgODUwYy0xNTYgMC0yODEtMTI1LTI4MS0yODFzMTI1LTI4MSAyODEtMjgxaDE1NnYtNDM4aDEyNXY4NzVoNjN2LTg3NWgxMjV2ODc1aDEyNXYxMjVoLTU5NHoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgoKPGdseXBoIGdseXBoLW5hbWU9InNlbGVjdC1saXN0IiB1bmljb2RlPSImI3gyNjsiIGQ9Ik02MyA4NTBoNzUwdi0xMjVoLTc1MHYxMjV6IG0wLTUwMGg4MTJ2LTEyNWgtODEydjEyNXogbTAtMTg3aDY4N3YtMTI1aC02ODd2MTI1eiBtMC0xODhoODc1di0xMjVoLTg3NXYxMjV6IG0tNjMgNjg4di0yNTBoMTAwMHYyNTBoLTEwMDB6IG02ODgtMTg4aC02MjV2MTI1aDYyNXYtMTI1eiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0ic2VsZWN0IiB1bmljb2RlPSImI3gyNzsiIGQ9Ik05MzggNjAwaC04NzVjLTM4IDAtNjMtMjUtNjMtNjJ2LTM3NWMwLTM4IDI1LTYzIDYzLTYzaDg3NWMzNyAwIDYyIDI1IDYyIDYzdjM3NWMwIDM3LTI1IDYyLTYyIDYyeiBtLTE4OC0zMTJsLTEyNSAxMjVoMjUwbC0xMjUtMTI1eiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0idGV4dC1pbnB1dCIgdW5pY29kZT0iJiN4Mjg7IiBkPSJNMTI1IDcyNWg2M3YtMjUwaC02M3YyNTB6IG0tNjIgMTI1Yy0zOCAwLTYzLTI1LTYzLTYydi04NzZjMC0zNyAyNS02MiA2My02Mmg5Mzd2MTAwMGgtOTM3eiBtNzUwLTkzOGgtNzUwdjg3Nmg3NTB2LTg3NnogbTEyNSAwdjBoLTYzdjYzaDYzdi02M3ogbTAgMTI2aC02M3Y2MjVoNjN2LTYyNXogbTAgNjg3aC02M3Y2M2g2M3YtNjN6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJ1cGxvYWQtMSIgdW5pY29kZT0iJiN4Mjk7IiBkPSJNNjg4IDIyNXYtMTI1aC0zNzV2MTI1aC0zMTN2LTM3NWgxMDAwdjM3NWgtMzEyeiBtLTQzOC0yNTBoLTEyNXYxMjVoMTI1di0xMjV6IG01NjMgNTYzbC0zMTMgMzEyLTMxMi0zMTJoMTg3di0zNzVoMjUwdjM3NXoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgoKPGdseXBoIGdseXBoLW5hbWU9InVwbG9hZCIgdW5pY29kZT0iJiN4MmE7IiBkPSJNMC0yNWgxMDAwdi0xMjVoLTEwMDB2MTI1eiBtNTAwIDg3NWwtMzEyLTMxMmgxODd2LTUwMGgyNTB2NTAwaDE4OHoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgoKPGdseXBoIGdseXBoLW5hbWU9ImF0IiB1bmljb2RlPSImI3gyYjsiIGQ9Ik00NjkgODhjLTE0NCAwLTI2MyAxMTgtMjYzIDI2MnMxMTkgMjYzIDI2MyAyNjMgMjYyLTExOSAyNjItMjYzYzctMTQ0LTExOC0yNjItMjYyLTI2MnogbTAgNDM3Yy05NCAwLTE2OS04MS0xNjktMTc1czc1LTE3NSAxNzUtMTc1IDE3NSA3NSAxNzUgMTc1LTg3IDE3NS0xODEgMTc1eiBtMzEtNjc1Yy0yNzUgMC01MDAgMjI1LTUwMCA1MDBzMjI1IDUwMCA1MDAgNTAwIDUwMC0yMjUgNTAwLTUwMGMwLTk0LTI1LTE4Ny03NS0yNjItMTktMzItNjktNzUtMTQ0LTc1LTUwIDAtODEgMTgtMTAwIDM3LTQzIDQ0LTM3IDExMy0zNyAxMTl2NDMxaDk0di00MzdjMC0xMyAwLTM4IDEyLTUwIDAgMCAxMy0xMyAzMS0xMyA0NCAwIDY5IDMxIDY5IDMxIDM4IDYzIDYzIDEzOCA2MyAyMTMgMCAyMjUtMTgyIDQwNi00MDcgNDA2cy00MTItMTc1LTQxMi00MDAgMTgxLTQwNiA0MDYtNDA2YzQ0IDAgODEgNiAxMTkgMThsMjUtODdjLTQ0LTE5LTk0LTI1LTE0NC0yNXoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgo8L2ZvbnQ+CjwvZGVmcz4KPC9zdmc+') format('svg'); font-style:normal; font-weight:normal; } .formBuilder { font-size: 12px; max-width: 600px; } .formBuilder * { box-sizing: border-box; } .formBuilder ul, .formBuilder li { margin: 0; padding: 0; list-style: none;} .formBuilder .frm-fields { max-width: 400px; } .formBuilder .frm-fields:empty { text-align: center; border: dashed 2px #CCC; padding: 40px; } .formBuilder .frm-fields:empty:before { content: 'Add Items Here.'; color: #999; } .formBuilder .frm-controls-panel { float: right; background: #CCC; min-width: 150px; max-width: 200px; position: relative; z-index: 10; position: -webkit-sticky; position:sticky; right: 0; top: 8px; } .formBuilder .frm-controls-panel li { padding: 5px 5px 5px 23px; border-top: solid 1px #999; } .formBuilder .frm-controls-panel li:first-child { border: none; } .formBuilder .frm-controls-panel li:before { content:'\0020'; display: inline-block; width: 10px; text-align:center; font-family: 'formBuilder'; float:left; margin-left:-18px; } .formBuilder .frm-controls-panel li.ui-draggable-dragging { border: none; } .formBuilder .frm-controls-panel li.ui-draggable-dragging:before { display: none; } .formBuilder .frm-controls-panel li[data-key="checkbox"]:before { content: '\21'; } .formBuilder .frm-controls-panel li[data-key="file"]:before { content: '\2a'; } .formBuilder .frm-controls-panel li[data-key="paragraph"]:before { content: '\25';} .formBuilder .frm-controls-panel li[data-key="radio"]:before { content: '\23'; } .formBuilder .frm-controls-panel li[data-key="select"]:before, .formBuilder .frm-controls-panel li[data-key="selectState"]:before{ content: '\26'; } .formBuilder .frm-controls-panel li[data-key="text"]:before { content: '\24'; } .formBuilder .frm-controls-panel li[data-key="textarea"]:before { content: '\28'; } .formBuilder .frm-controls-panel li[data-key="email"]:before { content: '\2b'; } .formBuilder .frm-controls-panel li:hover { background: #DDD; } .formBuilder .frm-controls-panel .ui-draggable-handle { cursor: move; } .formBuilder .frm-control { margin-bottom: 5px; background: #CCC; position: relative; z-index: 1; overflow: hidden; } .formBuilder .frm-control .frm-tite-bar { position: relative; z-index; 1; padding: 2px 25px 2px 0; font-size: 14px; } .formBuilder .ui-sortable .frm-control .frm-tite-bar { cursor: move; } .formBuilder .frm-control .frm-toggle { text-indent: -9999px; display: inline-block; width: 20px; height: 20px; position: relative; z-index: 1; -moz-transition: all .1s ease-in; -webkit-transition: all .1s ease-in; transition: all .1s ease-in; } .formBuilder .frm-control .frm-toggle:before { content: ''; display: block; width : 0; height: 0; left: 50%; top: 50%; margin: -5px 0 0 -5px; position: absolute; z-index: 1; border-left: 5px solid transparent; border-top: 8px solid #000; border-right: 5px solid transparent; } .formBuilder .frm-control.closed .frm-toggle { -moz-transform: rotate(-90deg); -webkit-transform: rotate(-90deg); transform: rotate(-90deg); } .formBuilder .frm-control.closed .frm-tite-bar:after { content: ' : ' attr(data-label); display: inline-block; } .formBuilder .frm-control.closed .btn-delete { display: none; } .formBuilder .frm-control .frm-contents { background: #DDD; padding: 5px; margin: 0 5px 5px 5px; position: relative; -moz-transition: all .2s ease-in-out; -webkit-transition: all .2s ease-in-out; transition: all .2s ease-in-out; max-height: 400px; } .formBuilder .frm-control.closed .frm-contents { height: 0; overflow: hidden; padding: 0; margin: 0; } .formBuilder .frm-control .btn-delete { display: block; position: absolute; z-index: 1; top: 2px; right: 2px; text-indent: -9999px; width: 20px; height: 20px; } .formBuilder .frm-control .btn-delete:before, .formBuilder .frm-control .btn-delete:after { content:''; display: block; width: 15px; height: 1px; background: red; position: absolute; top: 50%; left: 0; } .formBuilder .frm-control .btn-delete:before { -moz-transform: rotate(45deg); -webkit-transform: rotate(45deg); transform: rotate(45deg); } .formBuilder .frm-control .btn-delete:after { -moz-transform: rotate(-45deg); -webkit-transform: rotate(-45deg); transform: rotate(-45deg); } .formBuilder .frm-control .btn-add { display: block; position: relative; z-index: 1; color: green; padding-left: 12px; text-decoration: none; margin-top: 5px; } .formBuilder .frm-control .btn-add:before, .formBuilder .frm-control .btn-add:after { content:''; display: block; width: 10px; height: 1px; background: currentColor; position: absolute; top: 50%; left: 0; } .formBuilder .frm-control .btn-add:after { -moz-transform: rotate(90deg); -webkit-transform: rotate(90deg); transform: rotate(90deg); } .formBuilder .frm-field { padding-left: 150px; margin-bottom: 2px; } .formBuilder .frm-field label { margin-left: -130px; float: left; line-height: 2em; } .formBuilder .frm-field-required label { line-height: 1.5em; } .formBuilder .frm-field input[type=text], .formBuilder .frm-field textarea { border: solid 1px #CCC; padding: 3px; width: 90%; } .formBuilder .frm-field-option { position: relative; } .formBuilder .frm-field-option input[type=text] { width: 80%; width: calc(100% - 60px); } .formBuilder .frm-field-option .btn-delete { display: inline-block; position: relative; vertical-align: top; margin-left: 5px; } @media screen and (max-width:590px) { .formBuilder .frm-controls-panel { display: none; } .formBuilder .frm-controls { display: block; } } @media screen and (min-width:590px) { .formBuilder .frm-controls-panel { display: block; } .formBuilder .frm-controls { display: none; } }</style></head><body> <div id="form"></div> <a href="#" id="save">Save</a> <pre id="result" style="width: 100%;"></pre> <script src='//production-assets.codepen.io/assets/common/stopExecutionOnTimeout-b2a7b3fe212eaa732349046d8416e00a9dec26eb7fd347590fbced3ab38af52e.js'></script><script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js'></script><script src='https://cdnjs.cloudflare.com/ajax/libs/stickyfill/1.1.4/stickyfill.min.js'></script><script src='https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js'></script> <script >(function($){ "use strict"; $.fn.formBuilder = function(opts) { var options = $.extend({ data: null, save: null }, opts); return this.each(function() { var container = $(this); var controls = $.fn.formBuilder.controls; var formFields = null; if(!$.fn.sortable || !$.fn.draggable){ container.html('<p style="color:red">This plugin requires jqueryUI Sortable & Draggable!</p>'); throw('This plugin requires jqueryUI Sortable & Draggable'); } if (container.data('formBuilder')) { return; } container.addClass('formBuilder').data('formBuilder', true); render(); /* Events */ /* Save */ container.on('save.formBuilder', function(e){ var data = serialize(); if (options.save){ options.save(data); } }); /* Update title bar */ container.on('keyup.formBuilder', '.frm-field-label input', function(e){ var val = $(this).val(); $(this).parents('.frm-control').find('.frm-tite-bar').attr('data-label', val); }); /* Add Field */ container.on('change.formBuilder', 'select.frm-controls', function(e){ var key = $(this).val(); $(this).val(''); if (!key){ //console.log('no key'); return; } var control = findControl(key); if (!control) { //console.log('no control ('+ key +')'); return; } var html = renderControl(control, '', '', false); formFields.append(html); }); /* Show/Hide Field */ container.on('click.formBuilder', '.frm-toggle', function(e){ $(this).parents('.frm-control').toggleClass('closed'); }); /* Delete Field */ container.on('click.formBuilder', '.delete', function(e){ e.preventDefault(); if(window.confirm($(this).attr('title'))){ $(this).parents('li').animate({opacity: 'hide', height: 'hide', marginBottom: '0px'}, 'fast', function () { $(this).remove(); }); } }); /* Methods */ function render(){ var controlSelect = []; controlSelect.push('<select class="frm-controls">'); controlSelect.push('<option value="0">Add New Field...</option>'); var controlList = []; controlList.push('<ul class="frm-controls-panel">'); $.each(controls, function(index, element){ controlSelect.push('<option value="'+ element.key +'">'+ element.title +'</option>'); controlList.push('<li data-key="'+ element.key +'">'+ element.title +'</li>'); if (element.init){ element.init(container); } }); controlSelect.push('</select>'); controlSelect = controlSelect.join(''); controlList.push('</ul>'); controlList = controlList.join(''); var html = []; html.push(controlList); html.push(controlSelect); html.push('<ul class="frm-fields">'); /* Load existing values */ if (options.data) { var doc = $(options.data); $('field', doc).each(function(index, element){ var field = fromXML($(element)); if (field.control){ html.push(renderControl(field.control, field.label, field.values, field.required)); } }); } html.push('</ul>'); html.push(controlSelect); container.append(html.join('')); formFields = container.find('ul.frm-fields'); if ($.fn.sortable){ $('.frm-controls-panel li', container).draggable({ connectToSortable: formFields, helper: "clone", start: function(event, ui){ console.log('start', ui); var item = ui.helper; var w = formFields.outerWidth(); var key = item.attr('data-key'); if (!key){ console.log('no key'); return; } var control = findControl(key); if (!control) { console.log('no control ('+ key +')'); return; } var newItem = $(renderControl(control, '', '', false)); item.removeAttr('data-key').attr('data-control', newItem.attr('data-control')).html(newItem.html()).addClass(newItem.attr('class')).css({minWidth: w, height: 'auto'}); } }); formFields.sortable({ axis: 'y', distance: 5, opacity: 0.6, cursor: 'move' }); } if ($.fn.Stickyfill){ $('.frm-controls-panel', container).Stickyfill(); } } function fromXML(field){ var key = field.attr('type'); var label = field.attr('label'); //var required = (field.prop('required') === 'true' || field.prop('required') === 'required'); var required = (field[0].outerHTML.indexOf(' required="true"') > 0 || field[0].outerHTML.indexOf(' required="required"') > 0); var control = findControl(key); var values = ''; var xml = field.html(); if (control && control.fromXML && xml.length > 0){ values = control.fromXML(xml); } return { control: findControl(key), key: key, label: label, required: required, values: values }; } function findControl(key){ return $.grep(controls, function(x){ return x.key === key; })[0]; } function renderControl(control, label, values, required){ var html = []; var checked = required ? 'checked="checked"': ''; html.push('<li class="frm-control" data-control="'+ control.key +'">'); html.push('<div class="frm-tite-bar" data-label="'+ label +'">'); html.push('<a href="#" class="frm-toggle">Show/Hide</a>'); html.push('<strong>'+ control.title +'</strong>'); html.push('</div>'); html.push('<div class="frm-contents">'); html.push('<div class="frm-field frm-field-required">'); html.push('<label>Required?</label>'); html.push('<input type="checkbox" '+ checked +' />'); html.push('</div>'); html.push('<div class="frm-field frm-field-label">'); html.push('<label>Label:</label>'); html.push('<input value="'+ label +'" type="text">'); html.push('</div>'); html.push('</div>'); html.push('<a href="#" class="btn-delete delete" title="Are you sure you want to delete this form field?">Delete</a>'); html.push('</li>'); if (control.render){ var li = $(html.join('')); control.render(li, values); return li[0].outerHTML; } else { return html.join(''); } } function toXML(){ var xml = []; xml.push('<fields>'); formFields.find('li').each(function(index,element){ element = $(this); var type = element.attr('data-control'); var label = element.find('.frm-field-label input').val(); if (label === undefined){ label=''; } var required = element.find('.frm-field-required :checkbox').is(':checked'); var control = findControl(type); xml.push('<field type="'+ type +'" label="'+ label +'" required="'+ required +'">'); if (control && control.toXML){ xml.push(control.toXML(element)); } xml.push('</field>'); }); xml.push('</fields>'); return xml.join(''); } function serialize(){ return toXML(); } }); }; $.fn.formBuilder.controls = []; $.fn.formBuilder.AddControl = function(control){ /* Remove Existing */ for(var i = 0; i < $.fn.formBuilder.controls.length; i++) {if (window.CP.shouldStopExecution(1)){break;} if($.fn.formBuilder.controls[i].key === control.key) { $.fn.formBuilder.controls.splice(i, 1); break; } } window.CP.exitedLoop(1); /* Add new control */ $.fn.formBuilder.controls.push(control); /* Sort by title */ $.fn.formBuilder.controls = $.fn.formBuilder.controls.sort(function(a,b){ if (a.title < b.title) { return -1; } if (a.title > b.title) { return 1; } return 0; }); }; $.fn.formBuilder.Control = function(key, title){ return { key: key, title: title }; }; $.fn.formBuilder.ControlWithOptions = function(key, title, multipleSelect){ var control = $.fn.formBuilder.Control(key, title); var optionRow = []; optionRow.push('<div class="frm-field-option">'); optionRow.push('<input type="checkbox" />'); optionRow.push('<input type="text" />'); optionRow.push('<a href="#" class="btn-delete '+ control.key +'-remove" title="Are you sure you want to remove this option?">Remove</a>'); optionRow.push('</div>'); optionRow = optionRow.join(''); control.render = function(element, values){ var html = []; html.push('<div class="frm-field frm-field-options">'); html.push('<label>Options:</label>'); if (values){ html.push(values); } else { html.push(optionRow); } html.push('<a href="#" class="btn-add '+ control.key +'-add" title="Add New Option">Add</a>'); html.push('</div>'); element.find('.frm-contents').append(html.join('')); }; control.toXML = function(element){ var xml = []; $('.frm-field-option', element).each(function(index, element){ var value = $('input[type=text]', this).val(); var selected = ($(':checked', this).length > 0); xml.push('<opt value="'+ value +'" selected="'+ selected +'" />'); }); return xml.join(''); }; control.fromXML = function(xml){ var html = []; $('<root>'+ xml +'</root>').find('opt').each(function(index, element){ var value = $(element).attr('value'); var selected = ($(element).attr('selected') === 'selected' || $(element).attr('selected') === 'true') ? ' checked="checked"' : ''; html.push(optionRow.replace('type="text"', 'type="text" value="'+ value +'"').replace('type="checkbox"', 'type="checkbox" '+ selected)); }); return html.join(''); }; control.init = function(container){ container.on('click.'+ control.key, 'a.'+ control.key +'-add', function(e){ e.preventDefault(); $(optionRow).insertBefore(this); }); container.on('click.'+ control.key, 'a.'+ control.key +'-remove', function(e){ e.preventDefault(); $(this).parents('.frm-field-option').remove(); }); if (!multipleSelect){ container.on('click.'+ control.key, '[data-control="'+ control.key +'"] input:checkbox', function(e){ $(this).parents('.frm-field-options').find('input:checkbox').not(this).removeAttr('checked'); }); } }; return control; }; $.fn.formBuilder.AddControl($.fn.formBuilder.Control('text','Text')); $.fn.formBuilder.AddControl($.fn.formBuilder.Control('textarea','Text (multiple)')); $.fn.formBuilder.AddControl($.fn.formBuilder.ControlWithOptions('checkbox','Checkbox' ,true)); $.fn.formBuilder.AddControl($.fn.formBuilder.ControlWithOptions('radio','Radio Button' ,false)); $.fn.formBuilder.AddControl($.fn.formBuilder.ControlWithOptions('select','Select List' ,false)); $.fn.formBuilder.AddControl((function(){ var control = $.fn.formBuilder.Control('file', 'File Upload'); control.render = function(element, values){ element.find('.frm-contents').append('<div class="frm-field frm-field-extensions"><label>Accepted Extenions:</label><input value="'+ values +'" type="text"></div>'); }; control.toXML = function(element){ return '<extensions>'+ element.find('.frm-field-extensions input').val() +'</extensions>'; }; control.fromXML = function(xml){ return $(xml).text(); }; return control; })()); $.fn.formBuilder.AddControl((function(){ var control = $.fn.formBuilder.Control('paragraph', 'Paragraph'); control.render = function(element, values){ element.find('.frm-field-required').remove(); var field = element.find('.frm-field-label'); field.find('label').text('Text:'); field.find('input').remove().end().append('<textarea rows="10">'+ values +'</textarea>'); }; control.toXML = function(element){ return '<text>'+ element.find('textarea').val() +'</text>'; }; control.fromXML = function(xml){ return $(xml).text(); }; return control; })()); $.fn.formBuilder.AddControl((function(){ var control = $.fn.formBuilder.Control('email', 'Email'); control.render = function(element, values){ element.find('.frm-field-label input[value=""]').attr('value', 'Email'); }; return control; })()); $.fn.formBuilder.AddControl((function(){ var control = $.fn.formBuilder.Control('selectState', 'Select List (State/Provinces)'); control.render = function(element, values){ element.find('.frm-field-label').append('<br /><small>Select list of States/Provinces</small>'); }; return control; })()); })(jQuery); $(function(){ $('#form').formBuilder({ save: function(xml){ console.log(xml); $('#result').text(xml); }, data: null// '<form><settings><function>False,False,False</function><description></description></settings><fields><field label="First Name" required="false" type="text"></field><field label="Last Name" required="true" type="text"></field><field label="Email Address" required="true" type="text"></field><field label="Phone Number" required="true" type="text"></field><field label="Race Registered For" required="true" type="select"><opt value="Marathon" selected="true" /><opt value="Half Marathon"></opt><opt value="10k"></opt><opt value="8k"></opt><opt value="5k"></opt><opt value="Kids Run"></opt></field><field label="City" required="true" type="text"></field><field label="State" required="true" type="select"></field><field label="Tell Us Your Story" required="true" type="textarea"></field><field label="" required="" type="paragraph"><text>Hello World</text></field></fields></form>' }); $('#save').on('click', function(e){ e.preventDefault(); $('#form').trigger('save.formBuilder'); }); }); //# sourceURL=pen.js </script> </body></html>

Related: See More


Questions / Comments: