Partage
  • Partager sur Facebook
  • Partager sur Twitter

fonction autocomplete avec caractères spéciaux

    4 juillet 2019 à 9:47:03

    Bonjour, 

    je souhaite réutiliser un bout de code trouvé afin d'autocomplete un textarea mais si dans les champs prérempli j'ai un ' , cela s'arrete au '.

    explication:

    Après avoir tappé a dans mon textarea, "abc'de" apparait, je le choisis mais n'est retenu que abc.

    Je n'arrive pas à trouver ou cela coince.

    https://jsfiddle.net/74qsprbm/

    Merci de votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      4 juillet 2019 à 9:51:14

      Salut,

      le input que tu génère n'est pas correct :

      <input type="hidden" value="abc" de'="">



      • Partager sur Facebook
      • Partager sur Twitter
        4 juillet 2019 à 10:16:42

        bien vu mais je ne vois pas comment faire différemment...
        • Partager sur Facebook
        • Partager sur Twitter
          4 juillet 2019 à 14:07:49

          Le plus simple est d'inverser simples et doubles quotes

          b.innerHTML += '<input type="hidden" value="' + arr[i] + '">';

          le mieux restant d'echapper la string avec quelque chose dans le genre :

          arr[i].replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');

          Ce qui à pour conséquence d'ajouter un backslash (\) avant chaque simple ou double quote

          Mais ça pose un problème, vu que la string échapée se retrouve dans ton input. Il faut donc également enlever les backslashs lorsque tu renseigne la value du input :

          inp.value = this.getElementsByTagName("input")[0].value.replace('\\', '');



          https://jsfiddle.net/lk77/nbr6e01d

          -
          Edité par lk77 4 juillet 2019 à 14:18:59

          • Partager sur Facebook
          • Partager sur Twitter

          fonction autocomplete avec caractères spéciaux

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown