Enviar formulário de preferências com "enter" envia o formulário nativamente

Em main discourse (61e0db0e80), ao submeter o formulário de preferências do usuário com "enter" (ex: após alterar o nome), o formulário é enviado nativamente.

Isso resulta em uma requisição GET para a mesma página, e nenhuma alteração é salva no banco de dados.

Passos para reproduzir:

  1. Acesse a página de preferências
  2. Preencha/altere o nome
  3. Pressione enter
  4. A página é recarregada.

Não consigo reproduzir aqui no meta, acabei de tentar e funciona como esperado.

Você pode verificar aqui também, por favor?

Certo, consegui reproduzir em:

  • Firefox ESR v140.5.0esr - 64 bits em um perfil limpo (sem plugins, sem configuração personalizada)
  • Chromium v142.0.7444.175 com todos os plugins desativados

Estou rodando um Debian 13 e ambos os navegadores vêm do repositório do Debian.

1 curtida

Muito estranho, não consigo reproduzir no meu navegador (Firefox 45.0.2/Chromium: 143.0.7499.40)

Quando você diz

Isso me faz pensar que você não está testando no Meta?

Para constar, consigo reproduzir isso no meta :raised_hand:

Quando insiro meu nome e depois pressiono ‘enter’, a página é recarregada e o valor é esvaziado.

Estou presumindo que não salvou/não conseguiu salvar nenhuma alteração, pois eu ainda não cheguei a pressionar aquele botão antes que a página recarregasse?

ETA: Parece acontecer tanto no Firefox quanto no Chrome (no desktop/windows)

1 curtida

Ok, bom saber. Eu me pergunto por que não consigo reproduzir :confused:

Sem ideia :man_shrugging: :slight_smile:

Mas se você pudesse reproduzir, o que estaria procurando? Posso tentar novamente e ver se consigo fornecer as informações.

1 curtida

É 100% reprodutível em um ambiente dv limpo.

No Chrome mais recente:

dv new enter-submit
http://enter-submit.localhost/session/user1/become
visite
http://enter-submit.localhost/u/user1/preferences/account
mude o nome
clique em enter

A página recarrega.

Como estamos nos sentindo sobre algo como isso @martin / @j.jaffeux em /frontend/discourse/app/controllers/preferences.js:

      
    @action
    preventSubmit(event) {
       event?.preventDefault();
    }
    <form class="form-vertical" {{on "submit" this.preventSubmit}}>
       {{outlet}}
     </section>

É um pouco estranho termos um formulário que não é realmente um formulário neste caso muito específico.

2 curtidas

Eu quis dizer “com todos os plugins do navegador desativados” (eu uso um monte de coisas que podem bagunçar o comportamento original de um site)

Eu testei tanto no Meta quanto em um ambiente de desenvolvimento novo e limpo.

1 curtida