-
-
Save lukeclifton/bfaaa8cea70824f89c90 to your computer and use it in GitHub Desktop.
Template.customerCreate.rendered = function () { | |
$('.formsubmitter').click(function(e) { | |
e.preventDefault(); | |
var form = '#' + $(this).data('form-id'); | |
$(form).submit(); | |
}); | |
} |
so the simples way that has some repitition is to:
function myFancySumbitHandler (e) { e.preventDefault() /* etc */ }
Template.customCreate.events({
'click .formsubmitter': myFancySumbitHandler
})
Template.otherThing.events({
'click .formsubmitter': myFancySumbitHandler
})
so theres no easy way to make this kind of code global? seems kind of a basic need
of note, it's nicer to attach a submit
event handler to a form element and then you catch both button clicks and enter button keypress, so people can submit the form how they prefer
You want every form in your app to have the same submit handler? You should probably refactor it out to a common template and re-use the template.
yeah i know what your saying...the reason i'm using this formsumitter code is because my submit button is outside of my form for UI reasons
cheers for you help dude
wait, what even is going on here? You're passing form id's in as template data, to pull them out later to know which form to submit? Sounds hella complex. You wanna chat?
Incidentally, although it may not end up being relevant here, I do think there is call for global rendered/created/destroyed callbacks and have made the case on meteor-talk in the past. Not sure whether anything will happen, but I do think that there is a use case for this (even if it isn't this one), at least as a set of convenience methods.
ok, permission to hit me. i realise now that i can just get the form id from the event handler. i pasted the code from a previous non meteor project and didn't check it.
but yes agree with @richsilv, global rendered functions is still a need
It'd be idiomatic to add that as a template event map: http://docs.meteor.com/#/full/template_dynamic
rather than in a
rendered
. That doesn't solve you're problem of needing it to be global, but it's a start