This is the way that I use. If you prefer an out of the box solution, check out the packages for x-editable, there are a few.
- Reactive variable or helper returns true for input, false for div
- Template calls subtemplate with argument from 1
- Subtemplate returns input if true, div if false
This way you don’t have to add if-else for each input in each form, you simply call subtemplate with arguments.
You can enhance this by using dynamic subtemplates, thanks to them you could easily get a nice animation for the input / div change if you want to switch between them f.e. on doubleclick.
Third alternative is to go with contenteditable div, where you simply add the contenteditable argument and optionally styling class for your div, that makes it look like input.
I find Blaze Components being of a great help to achieve that, but you can do it in pure Blaze as well.