Необходим ли элементу input атрибут type?
Насколько правильно данное решение?Абсолютно неправильно. Нет никакого "лишнего" стандартного поведения - на то оно и стандартное.
Ну а уж заменять "лишнее" стандартное поведение кнопки "нелишним" стандартным поведением текстового поля и вовсе бред.
Расскажите коллеге про preventDefault