This might be helpful to look at:
Disable Auto Zoom in Input "Text" tag - Safari on iPhone
You'd basically need to capture the event of tapping on a form element, then not run the default iOS action of zooming in, but still allowing it to zoom for the rest of the page.
Edit:
The link mentions,
2) You can dynamically change the META viewport tag using javascript
(see Enable/disable zoom on iPhone safari with Javascript?)
To elaborate:
- Viewport meta tag is set to allow zooming
- User taps on form element, changes meta tag to disable zooming
- Upon pressing done, viewport is changed to allow zoom
And if you can't change the tag when clicking on a form element, put a div that mimics the form element that when you press it, it changes the tag, then calls the input.