Why not hide the input element and replace it with a label element with the same content?
I puzzled over how the React TODOMVC app accomplished this same thing and this is the strategy they came up with.
To see it in action, check out the app below, and watch the CSS properties of the TODO items when you double click them and then click away.
http://todomvc.com/examples/react-backbone/#/
When you render the page you can have either an editable input, or a non-editable label with display:none; depending on your media query.