web-dev-qa-db-fra.com

Problème de formulaire de commentaire avec comment_author_url et espaces réservés d'entrée HTML5

J'utilise HTML5 sur deux sites exécutant deux versions différentes de WordPress. Ils ont tous deux le même comportement et j'aimerais avoir de l'aide pour résoudre ce problème, s'il vous plaît.

<label for="url">Website</label> <input type="url" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" placeholder="Enter Website Address (optional)" pattern="https?://.+">

Lors des tests, nous avons identifié un problème avec comment_author_url qui se produit lorsque les utilisateurs ne saisissent pas d'adresse URL. Pour une raison quelconque, WordPress récupère le texte d’espace réservé et l’enregistre dans la base de données, comme suit:

http: // EnterWebsiteAddress (facultatif )

J'ai vraiment du mal à essayer de comprendre pourquoi cela se produit. L'attribut de marque de réservation ne fait pas partie de la valeur en entrée et ne devrait donc pas être repris. Ce même code est utilisé dans d'autres applications sans problèmes.

Est-ce que quelqu'un sait comment corriger cela dans WordPress?

UPDATE: J'ai fait beaucoup de recherches à ce sujet et je pensais partager mes découvertes. Les problèmes proviennent de la fonction comment_form de WordPress.

Pour éviter les problèmes, il y a deux options:

  1. Utilisez uniquement des espaces réservés dans les champs obligatoires. Lorsque les champs sont mis en évidence et que quelque chose est entré, l'espace réservé est effacé.
  2. Utilisez JavaScript pour effacer les espaces réservés avant la soumission du formulaire.

J'espère que cela aidera les autres qui ont rencontré les mêmes problèmes. Je ne soumets pas de correctif à WordPress car, pour le moment, WordPress ne souhaite prendre en charge que XHTML.

2
Elpie

Pour éviter les problèmes, il n'y a actuellement que deux options:

  1. Utilisez uniquement des espaces réservés dans les champs obligatoires. Lorsque les champs sont mis en évidence et que quelque chose est entré, l'espace réservé est effacé.
  2. Utilisez JavaScript pour effacer les espaces réservés avant la soumission du formulaire.

Remarque: a répondu à ma propre question après de nombreuses recherches.

1
Elpie

J'ai également ce problème, je n'ai pas trouvé de solution à ce problème, mis à part la suppression de l'attribut fictif:/il semble que cela se produise dans n'importe quel navigateur. J'utilise une solution de secours JavaScript pour les navigateurs qui ne prennent pas en charge l'attribut d'espace réservé, mais avec ou sans elle, wordpress semble prendre le texte d'espace réservé comme valeur pour l'entrée.

1
user4586