Soumettre le formulaire de préférences avec "enter" soumet le formulaire nativement

Sur le discours main (61e0db0e80), lors de la soumission du formulaire de préférences utilisateur avec « Entrée » (par exemple : après avoir modifié le nom), le formulaire est envoyé nativement.

Ceci entraîne une requête GET vers la même page, et aucune modification n’est enregistrée dans la base de données.

Étapes pour reproduire :

  1. Accéder à la page des préférences
  2. Remplir/modifier le nom
  3. Appuyer sur Entrée
  4. La page se recharge.

Je ne peux pas reproduire ici sur meta, je viens d’essayer et cela fonctionne comme prévu.

Pouvez-vous vérifier ici aussi s’il vous plaît ?

Bien sûr, j’ai pu le reproduire dans :

  • Firefox ESR v140.5.0esr - 64 bits dans un profil propre (sans modules, sans configuration personnalisée)
  • Chromium v142.0.7444.175 avec tous les modules désactivés

J’utilise Debian 13 et les deux navigateurs proviennent du dépôt Debian.

1 « J'aime »

Très étrange, je ne peux pas reproduire dans mon navigateur (Firefox 45.0.2/Chromium: 143.0.7499.40)

Quand vous dites

Cela me fait penser que vous ne testez pas sur Meta ?

Pour information, je peux reproduire cela sur meta :raised_hand:

Lorsque j’entre mon nom puis que j’appuie sur « entrée », la page se recharge et vide la valeur.

Je suppose que les changements n’ont pas été sauvegardés car je n’ai pas eu le temps d’appuyer sur ce bouton avant que la page ne se recharge ?

ETA : Il semble que cela se produise à la fois sous Firefox et Chrome (sur ordinateur/Windows)

1 « J'aime »

D’accord, c’est bon à savoir. Je me demande pourquoi je n’arrive pas à reproduire :confused:

Aucune idée :man_shrugging: :slight_smile:

Mais si vous pouviez reproduire, que chercheriez-vous ? Je peux réessayer et voir si je peux vous fournir les informations.

1 « J'aime »

C’est reproductible à 100 % dans un environnement dv propre.

Sur la dernière version de Chrome :

dv new enter-submit
http://enter-submit.localhost/session/user1/become
visiter
http://enter-submit.localhost/u/user1/preferences/account
changer le nom
cliquer sur entrer

La page se recharge.

Que pensez-vous de quelque chose comme ceci @martin / @j.jaffeux dans /frontend/discourse/app/controllers/preferences.js :

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

Il est un peu étrange que nous ayons un formulaire qui n’est pas vraiment un formulaire dans ce cas très spécifique.

2 « J'aime »

Je voulais dire « avec tous les plugins de navigateur désactivés » (j’utilise beaucoup de choses qui peuvent perturber le comportement original d’un site web)

J’ai testé à la fois sur Meta et dans un nouvel environnement de développement propre.

1 « J'aime »