Skip to content

Commit 28618ea

Browse files
committed
take object literals as nested fields
1 parent 19da5d6 commit 28618ea

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

example/simple.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,17 @@ var reg_form = forms.create({
2525
required: true,
2626
validators: [validators.matchField('password')]
2727
}),
28-
personal: fields.object({
29-
name: fields.string({required: true}),
30-
email: fields.email({required: true}),
31-
address: fields.object({
32-
address1: fields.string({required: true}),
33-
address2: fields.string(),
34-
city: fields.string({required: true}),
35-
state: fields.string({required: true}),
36-
zip: fields.number({required: true})
37-
})
38-
})
28+
personal: {
29+
name: fields.string({required: true, label: 'Name'}),
30+
email: fields.email({required: true, label: 'Email'}),
31+
address: {
32+
address1: fields.string({required: true, label: 'Address 1'}),
33+
address2: fields.string({label: 'Address 2'}),
34+
city: fields.string({required: true, label: 'City'}),
35+
state: fields.string({required: true, label: 'State'}),
36+
zip: fields.number({required: true, label: 'ZIP'})
37+
}
38+
}
3939
});
4040

4141
http.createServer(function (req, res) {

lib/forms.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ exports.validators = require('./validators');
1414

1515
exports.create = function (fields) {
1616
Object.keys(fields).forEach(function (k) {
17+
// if it's not a field object, create an object field.
18+
if(typeof fields[k].toHTML !== 'function' && typeof fields[k] == 'object') {
19+
fields[k] = exports.fields.object(fields[k]);
20+
}
1721
fields[k].name = k;
1822
});
1923
var f = {

0 commit comments

Comments
 (0)