Utilizando autocomplete com o elemento 'datalist'.
Desabilitando campos e botões. Configurando campo com somente leitura.
Usando validações do HTML 5.