meteor - How do you add values to AutoForm's form object without using a form? -


i've got form created through autoform.

as far data sources, can fill in parts of form , use:

autoform.getformvalues('form-id').insertdoc // returns contents of form 

when validate form can do:

var formvalues = autoform.getformvalues('form-id').insertdoc;  var isvalid = mycollection.simpleschema().namedcontext("mycontext").validate(formvalues);   // if isvalid returns true, enable submit button 

instead of filling in parts of form, want manually add information whatever object autoform uses validation , submission collection.

for example, there data fields in schema don't need appear in form itself.

take shopping cart:

shoppingcartschema = {   totalprice: {     type: number,     optional: false   },   itemsselected: {     type: [object],     optional: false   } }; 

the data itemsselected provided through user input on form.

the data totalprice should not form input. it's generated in code.

but totalprice still needs validated required field before autoform submits form collection.

so how add totalprice onto object autoform validates?

you use autovalue if wanted to.

shoppingcartschema = new simpleschema({   'items': {     type: [object],   },   'items.$.name': {     type: string   },   'items.$.price': {     type: number   },   totalprice: {     type: number,     autovalue: function () {       if (this.field('items').isset) {         let total = this.field('items').value.reduce(function (sum, item) {           return sum + item.price;         }, 0);         if (this.isinsert) {           return total;         } else {           return { $set: total };         }       }     }   }, }); 

Comments

Popular posts from this blog

html - Outlook 2010 Anchor (url/address/link) -

javascript - Why does running this loop 9 times take 100x longer than running it 8 times? -

Getting gateway time-out Rails app with Nginx + Puma running on Digital Ocean -