Skip to content
A jQuery plugin for building forms, loading form structure from xml, and saving back to the server.
JavaScript HTML Smarty CSS
Branch: master
Clone or download
Latest commit d210097 Dec 31, 2015
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Update radio-choices.tpl Dec 31, 2015
.gitignore Finishing/updating dist package Sep 17, 2014
.jshintrc Initial work on formbuilder 2 Jun 13, 2014
Gruntfile.js Finishing/updating dist package Sep 17, 2014
LICENSE Fixing license mismatch bug 22:resolved Oct 30, 2014 Various cleanup, removing lodash as a dependency Dec 7, 2014
bower.json Update bower.json Feb 18, 2015
package.json Finishing/updating dist package Sep 17, 2014

FormBuilder v2 (Beta)

Formbuilder is a component for your web-application that allows users to build web forms. We provide basic logic for rendering the resulting form.

Think of it like a CMS for forms.

Installation with Bower

We support installation via Bower: bower install jquery.formbuilder. Requires jQuery and dustjs-linkedin template library.


Take a look at dist/index.html. You essentially need to declare a new formbuilder() with at least a few options:

  • targets - A jQuery DOM element to attach instances to, i.e. $('.formbuilder')
  • save - A callback that executes when a form is saved
  • startingModel - A starting model if one is loaded from a database

What's Different In v2

The web has changed so much in the five years since I wrote v1, so there's a lot of newer technology we can use - JSON over xml, lodash, templating, MongoDB, etc.

v1 was pretty bulky and poorly coded. It was designed for a specific purpose and wasn't flexible enough for how people have used formbuilder ever since. If you need v1, see here.

Version 2 offers:

  • JSON all the way around. No serliazing/format conversion.
  • More flexible field schema options for future expansion work
  • Form editor and form rendering use templates, making it easier to customize them
  • Better re-use of internal code, much cleaner code
  • Returns a basic API you can use for custom work
  • PHP/Mongo save/load example code is extremely lightweight, and easily replaced
  • Much improved support for multiple instances on a single page

v2 uses an internal javascript object that we keep synchronized with the form editor. When you load/save we're simply passing the object (JSON) around.

While you can store this data in any database, I've opted for MongoDB as an example because it stores data as JSON documents. So your data is JSON all the way around. Plus, I absolutely love it.

However, php/mongo aren't required and can be easily replaced with any back-end storage/language.

Important Notes

v2 is still in development, we're mainly working on cleanup and making it better.

Unlike v1, we're now leaving validation and processing of actual form submissions up to you. While validation may be improved, processing and handling form data is something we can't predict for your use case.

Distribusion Code

We provide a dist folder with a complete copy of everything you need to get started. Our build process copies over and compiles the libraries and source for production-ready environments.


Please report all issues, bugs, and feature suggestions to our issue tracker

Frombuilder is open source, we encourage you to submit improvements!


After cloning the repo, be sure you've installed the proper node/bower modules:

  • npm install
  • bower install

Then, run grunt to properly check and package the files.



  • add sorting to choices


  • set maxcharacters/size for fields
  • allow setting placeholders
  • add support for html5 field elements
You can’t perform that action at this time.