There is the Emacs Widget Library. It has editable fields, buttons, menus, etc - all in text mode. For instance
(widget-create 'editable-field
:size 13
:format "Name: %v " ; Text after the field!
"My Name")