Bootstrap form example
by Steven Senkus
HTML
<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
<script src="http://documentcloud.github.com/backbone/backbone-min.js"></script>
<script src="https://rawgithub.com/powmedia/backbone-forms/master/distribution/backbone-forms.js"></script>
<script src="https://rawgithub.com/powmedia/backbone-forms/master/distribution/editors/list.js"></script>
<script src="https://rawgithub.com/powmedia/backbone-forms/master/distribution/adapters/backbone.bootstrap-modal.js"></script>
<script src="https://rawgithub.com/powmedia/backbone-forms/master/distribution/templates/bootstrap.js"></script>
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/css/bootstrap.min.css">
<button id='sdfsd'>sdfsdf</button>
CSS
body { padding: 50px 0;}
/* Date */
.bbf-date .bbf-date {
width: 4em
}
.bbf-date .bbf-month {
width: 9em;
}
.bbf-date .bbf-year {
width: 5em;
}
/* DateTime */
.bbf-datetime select {
width: 4em;
}
/* List */
.bbf-list .bbf-add {
margin-top: -10px
}
.bbf-list li {
margin-bottom: 5px
}
.bbf-list .bbf-del {
margin-left: 4px
}
/* List.Modal */
.bbf-list-modal {
cursor: pointer;
border: 1px solid #ccc;
width: 208px;
border-radius: 3px;
padding: 4px;
color: #555;
}
JavaScript
$(function() {
//Use BootstrapModal for object List editor
Backbone.Form.editors.List.Modal.ModalAdapter = Backbone.BootstrapModal;
//Main model definition
var User = Backbone.Model.extend({
schema: {
title: { type: 'Select', options: ['', 'Mr', 'Mrs', 'Ms'] },
name: 'Text',
email: { validators: ['required', 'email'] },
birthday: 'Date',
password: 'Password',
notes: { type: 'List' },
weapons: { type: 'List', itemType: 'Object', subSchema: {
name: { validators: ['required'] },
number: 'Number'
}}
}
});
var user = new User({
title: 'Mr',
name: 'Sterling Archer',
email: '[email protected]',
birthday: new Date(1978, 6, 12),
password: 'dangerzone',
notes: [
'Buy new turtleneck',
'Call Woodhouse',
'Buy booze'
],
weapons: [
{ name: 'Uzi', number: 2 },
{ name: 'Shotgun', number: 1 }
]
});
//The form
var form = new Backbone.Form({
model: user
}).render();
//Add it to the page
$('body').append(form.el);
$('#sdfsd').click(function(e) {e.preventDefault(); form.validate();
//$('form').submit();
})
});