Formbuilder.jsはJavaScript製のオープンソース・ソフトウェア(MIT License)です。

Googleスプレッドシートのアンケートフォーム作成機能は度々使われていますが、同じような仕組みを自分で作れるのがFormbuilder.jsです。JavaScriptを使って多様な入力項目を実現します。

[![](http://images.moongift.jp/2013/09/Screenshot 2013-09-14 16.09.16_thumb.1379214580.png)](http://images.moongift.jp/2013/09/Screenshot 2013-09-14 16.09.16.1379214580.png)
アドレス入力。郵便番号から住所まで一気に入力できます。

[![](http://images.moongift.jp/2013/09/Screenshot 2013-09-14 16.09.48_thumb.1379214585.png)](http://images.moongift.jp/2013/09/Screenshot 2013-09-14 16.09.48.1379214585.png)
単なるテキスト入力。

[![](http://images.moongift.jp/2013/09/Screenshot 2013-09-14 16.09.54_thumb.1379214589.png)](http://images.moongift.jp/2013/09/Screenshot 2013-09-14 16.09.54.1379214589.png)
金額の入力。

[![](http://images.moongift.jp/2013/09/Screenshot 2013-09-14 16.10.02_thumb.1379214595.png)](http://images.moongift.jp/2013/09/Screenshot 2013-09-14 16.10.02.1379214595.png)
複数行の入力。大きさも段階的に選べます。

[![](http://images.moongift.jp/2013/09/Screenshot 2013-09-14 16.10.21_thumb.1379214600.png)](http://images.moongift.jp/2013/09/Screenshot 2013-09-14 16.10.21.1379214600.png)
ドロップダウン。デフォルト値も変更可能。

[![](http://images.moongift.jp/2013/09/Screenshot 2013-09-14 16.11.45_thumb.1379214605.png)](http://images.moongift.jp/2013/09/Screenshot 2013-09-14 16.11.45.1379214605.png)
設定項目はJSONになっています。

Formbuilder.jsでは管理画面を使って設定を行います。その結果はJSONなので、そのまま適用して再現が可能です。入力項目は日付、ファイル、チェックボックス、メールアドレス、URL、複数選択と十分に用意されています。イベントは保存実行時に取得可能で、後はそのデータを保存すれば良いだけです。仕組みも柔軟で使い勝手が良さそうです。

MOONGIFTはこう見る

この手のシステムをDBを使って自作しようと思うと質問/質問の項目、さらにその選択肢といった具合で複数のテーブルを用意しなければならないでしょう。さらにその結果の保存先も必要です。それがFormbuilder.jsを使うと一つのカラムにJSONを入れておくだけで済んでしまいます。これはかなりお手軽です。

柔軟な運用を実現するために管理するテーブルが増えると仕様変更の際にかえって足を引っ張るケースがあります。その項目を分析に使ったりしないのであれば、Formbuilder.jsのようにJSONでデータを保存しておくのは意外と良い選択肢なのかも知れませんね。

Formbuilder.js by dobtco

dobtco/formbuilder