Correction contact: raccourci Ctrl+Entree = meme cause (preventDefault manquant), requestSubmit OK, 501 du serveur expliquee

This commit is contained in:
2026-06-23 11:28:14 +02:00
parent 0ea04988a3
commit ea02e41362
+23
View File
@@ -55,6 +55,29 @@ Deux façons :
---
## ⌨️ Et ton raccourci clavier Ctrl + Entrée ? (même cause)
Ton code clavier est **correct**, bonne nouvelle :
```js
zoneMessage.addEventListener("keydown", function (event) {
if (event.key === "Enter" && event.ctrlKey) {
formulaire.requestSubmit(); // ✅ bon choix
}
...
});
```
> 👍 Tu as bien utilisé **`requestSubmit()`** et pas `submit()`. La différence est importante : `requestSubmit()` **déclenche ton gestionnaire `submit`** (donc ta validation et — une fois corrigé — ton `preventDefault`), alors que `form.submit()` l'aurait **court-circuité** et aurait posté direct. Tu as pris le bon.
Du coup, `Ctrl + Entrée` passe **exactement par le même chemin** que le clic sur « Envoyer » : il déclenche l'événement `submit` → ton gestionnaire tourne → et comme le `else` n'annule pas l'envoi, le formulaire **poste** pour de vrai → en `file://` rien ne se passe (« ça marche »), en `localhost` le serveur répond **501** et tu pars sur la page d'erreur (« ça ne marche pas »).
👉 **Donc il n'y a pas de bug séparé pour le clavier** : c'est le même `preventDefault()` manquant. Dès que tu l'ajoutes (point ci-dessus), **le clic ET le Ctrl + Entrée** marcheront pareil, en `file://` comme en `localhost`.
> 🔎 Et la **501** que tu vois ? C'est normal et attendu : le petit serveur `http.server` ne sait qu'**envoyer des fichiers** (méthode GET). Il ne sait pas **traiter** un envoi de formulaire (méthode POST) → il répond « 501 Unsupported method ». Ce n'est pas à toi de « réparer » le serveur : le bon réflexe, c'est de **ne pas poster du tout** (ton `preventDefault`), puisqu'il n'y a pas de programme derrière pour recevoir les données.
---
## 📝 Bonus — bien comprendre `file://` vs `http://localhost`
C'est **deux façons différentes** d'ouvrir la même page. Regarde ta **barre d'adresse**, elle te dit dans quel mode tu es.