Dans un formulaire, remplacer l’apostrophe dactylographique par l’apostrophe typographique

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Michel B., 18 Février 2016.

  1. Michel B.
    Michel B. Nouveau WRInaute
    Inscrit:
    19 Janvier 2008
    Messages:
    33
    J'aime reçus:
    1
    Bonjour,
    J’ai mis en ligne un site d’exercices interactifs conçus avec HotPotatoes.
    La page html contient un formulaire que le visiteur remplit (la « question ») tandis qu’un bouton « Correction » valide (ou non) la réponse encodée (sur base d’une ou plusieurs solutions répertoriées). Si la réponse est validée, elle s’affiche alors. S’il y a plusieurs solutions répertoriées, la réponse s’affiche comme elle a été encodée.
    Fonctionnement parfait.
    Seul problème : dans un formulaire, le clavier envoie une apostrophe droite [ ' ] (\u0027). C’est donc la réponse répertoriée. Même si les solutions répertoriées incluent l’occurrence avec l’apostrophe typographique [ ’ ](\u2019), à moins que le visiteur ne l’encode d’une façon ou d’une autre avec le clavier, c’est l’apostrophe dactylographique qui sera affichée.
    La solution de repli proposée par les concepteurs du logiciel HotPotatoes (http://hotpot.uvic.ca/), libre et gratuit en usage non commercial, est l’ajout d’un clavier virtuel sur la page. Ainsi les guillemets français, par exemple, peuvent-ils être envoyés dans le champ (input ou textarea) d’un formulaire : la réponse validée s’affiche alors correctement.
    Exemple : http://users.skynet.be/courstoujours/Discours/dr41.htm. Mais cette solution ne convient pas bien aux apostrophes, beaucoup plus nombreuses que les guillemets.
    Or les auteurs du logiciel semblent avoir cessé son développement.
    Comment faire en sorte que la saisie au clavier de l’apostrophe dactylographique se commute automatiquement en apostrophe typographique ?
    Peut-être existe-t-il une réponse simple à cette question apparemment complexe…
    Cordialement.
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    8 811
    J'aime reçus:
    242
    En JavaScript, sur le onclick du bouton "Correction":
    Code:
    str.replace(/’/g, "'");
     
  3. Michel B.
    Michel B. Nouveau WRInaute
    Inscrit:
    19 Janvier 2008
    Messages:
    33
    J'aime reçus:
    1
    Je vous remercie pour votre réponse et pour sa rapidité.
    Mais je ne vois pas comment procéder. Voici le code du bouton "Correction" :
    Code:
    <button id="CheckButton2" class="FuncButton" onmouseover="FuncBtnOver(this)" onfocus="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onblur="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="CheckAnswers()">&#160;Correction&#160;</button>
    
    À quel endroit insérer le code que vous proposez ?
     
  4. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    8 811
    J'aime reçus:
    242
  5. Michel B.
    Michel B. Nouveau WRInaute
    Inscrit:
    19 Janvier 2008
    Messages:
    33
    J'aime reçus:
    1
    Merci pour l’onfo.
    J’ai ajouté la ligne ici :
    Code:
    function CheckAnswers(){
    	str.replace(/’/g, "'");
    	if (Locked == true){return;}
    	SaveCurrentAnswers();
    	var AllCorrect = true;
    mais cela ne fonctionne pas… Je ne vois pas où insérer la ligne de code dans le fichier js.
     
  6. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    8 811
    J'aime reçus:
    242
    Code:
    function CheckAnswer(GapNum, MarkAnswer){
    	var Guess = GetGapValue(GapNum);
    	var UpperGuess = '';
    	var UpperAnswer = '';
    	...
    
    A remplacer par:
    Code:
    function CheckAnswer(GapNum, MarkAnswer){
    	var Guess = GetGapValue(GapNum);
    	Guess = Guess.replace(/’/g, "'");
    	var UpperGuess = '';
    	var UpperAnswer = '';
    	...
    
     
  7. Michel B.
    Michel B. Nouveau WRInaute
    Inscrit:
    19 Janvier 2008
    Messages:
    33
    J'aime reçus:
    1
    Je viens d’essayer mais cela ne semble pas fonctionner : l’apostrophe reste droite dans l’encodage.
    J’ai mis en ligne une page complète (sans js extérieur) pour plus de facilité :
    http://users.skynet.be/courstoujours/Portraits/Portraits_lacunaires01.htm
     
  8. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    8 811
    J'aime reçus:
    242
    C'est lors du "check" que ça modifie, pas lors de l'encodage.
     
  9. Michel B.
    Michel B. Nouveau WRInaute
    Inscrit:
    19 Janvier 2008
    Messages:
    33
    J'aime reçus:
    1
    Oui, si vous faites un copié-collé de "comme pour défier l’usure du temps", vous obtenez la réponse lors du "check" (à l’encodage aussi) car j’ai prévu (pour ce fichier) une réponse alternative. Mais elle n’apparait pas si on encode directement avec le clavier "comme pour défier l'usure du temps".
     
  10. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    8 811
    J'aime reçus:
    242
  11. Michel B.
    Michel B. Nouveau WRInaute
    Inscrit:
    19 Janvier 2008
    Messages:
    33
    J'aime reçus:
    1
    La ligne est celle-ci :
    Code:
    Guess = Guess.replace(/’/g, "'");
    mais elle est sans effet.
     
  12. Michel B.
    Michel B. Nouveau WRInaute
    Inscrit:
    19 Janvier 2008
    Messages:
    33
    J'aime reçus:
    1
    Pour vous montrer cette anomalie, j'ai modifié ce fichier http://users.skynet.be/courstoujours/Portraits/Portraits_lacunaires01.htm comme ceci : (ligne 1360)
    Code:
    Guess = Guess.replace(/'/g, "'");
    -->
    Code:
    Guess = Guess.replace(/'/g, "\u2019");
    D’une façon comme d’une autre, le commande semble inactive.
     
  13. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    8 811
    J'aime reçus:
    242
    C'est assez difficile de t'aider comme ça, il faut utiliser console.log(Guess) et voir dans le debugger du navigateur (F12) ce qu'il se passe.
     
  14. Michel B.
    Michel B. Nouveau WRInaute
    Inscrit:
    19 Janvier 2008
    Messages:
    33
    J'aime reçus:
    1
    Je vous remercie, Spout, de vous être penché sur la question.
    Hélas, mes compétences dans ce domaine sont limitées et je n’avance qu’à très petits pas : une ligne par-ci, une autre par-là.
    Je remettrai donc à plus tard cette quadrature du cercle.
     
  15. Michel B.
    Michel B. Nouveau WRInaute
    Inscrit:
    19 Janvier 2008
    Messages:
    33
    J'aime reçus:
    1
    J’avais peut-être mal exposé ma demande. Mais vous m’avez mis sur la piste. Et j’ai trouvé !
    La solution était à cette adresse : http://blog.idleman.fr/snippet-22-javascript-nettoyer-une-saisie-pour-les-url/
    Je vous la confie ici.
    Une ligne de fonction :
    Code:
    <script type="text/javascript">
    function apostrophe(e){e.value = e.value.replace(/'/g,'’');}
    </script>
    Un attribut dans la balise <input> ou <textarea>:
    Code:
    onkeyup="apostrophe(this)"
    J’ai complété mes deux fichiers externes concernés et plusieurs chapitres de mon site :
    Portraits : http://users.skynet.be/courstoujours/Portraits/Portrait01.htm et
    Descriptions : http://users.skynet.be/courstoujours/Descriptions/Descriptions01.htm, notamment.
    Bon week-end.
     
  16. Michel B.
    Michel B. Nouveau WRInaute
    Inscrit:
    19 Janvier 2008
    Messages:
    33
    J'aime reçus:
    1
    Dans la foulée, j’ai inclus dans le code de remplacement automatique les lettres ligaturées.
    Heureux de cette avancée, j’ai écrit quelques lignes à ma façon :

    Des apostrophes appelées typographiques,
    Dans mes fertiles champs de texte à compléter,
    Fleurissent désormais tout au long du sentier
    Pédagogique : Ah ! j’aime ces traits bucoliques !
    http://users.skynet.be/courstoujours/Stances/P105.htm
     
Chargement...
Similar Threads - remplacer l’apostrophe dactylographique Forum Date
Htacces : comment remplacer _ par : URL Rewriting et .htaccess 18 Juin 2019
remplacer version desktop par version mobile first Problèmes de référencement spécifiques à vos sites 19 Mai 2019
WordPress Par quoi remplacer MailPoet ? Débuter en référencement 1 Février 2019
Dans un script, Remplacer le mode « hasard » par le mode « suivant » Développement d'un site Web ou d'une appli mobile 3 Novembre 2018
Un logiciel pour remplacer Google Analytics ? Google Analytics 20 Juin 2018
Remplacer des redirections 302 en 301 Développement d'un site Web ou d'une appli mobile 23 Mai 2018
Remplacer une url par une autre URL Rewriting et .htaccess 29 Octobre 2016
Remplacer les underscores par des tirets URL Rewriting et .htaccess 1 Septembre 2015
Peut-on remplacer un lien dans la SERP ? Problèmes de référencement spécifiques à vos sites 27 Juin 2015
modifier et remplacer le contenu des pages web pour google Rédaction web et référencement 7 Août 2014
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice