Maison >interface Web >js tutoriel >Comment puis-je éviter la perte du codage HTML lors de la récupération des valeurs des champs de saisie en JavaScript ?

Comment puis-je éviter la perte du codage HTML lors de la récupération des valeurs des champs de saisie en JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-30 15:11:08330parcourir

How Can I Prevent HTML Encoding Loss When Retrieving Values from Input Fields in JavaScript?

Perte d'encodage HTML lors de la récupération des attributs du champ de saisie

En JavaScript, récupérer la valeur d'un champ masqué pour l'afficher dans une zone de texte peut présenter un problème d'encodage. Prenons l'exemple suivant :

<input>

Lors de l'utilisation de jQuery pour récupérer la valeur du champ masqué, JavaScript perd son encodage :

$('#hiddenId').attr('value')

Le résultat souhaité est "chalk & cheese" avec le littéral "&" conservé.

Solution

Pour résoudre ce problème, nous introduisons ce qui suit fonctions :

function htmlEncode(value) {
  return $('<textarea/>').text(value).html();
}

function htmlDecode(value) {
  return $('<textarea/>').html(value).text();
}

Ces fonctions créent un élément textarea en mémoire, définissent son texte interne, puis récupèrent le contenu encodé (htmlEncode) ou le texte interne décodé (htmlDecode). L'élément n'existe jamais sur le DOM.

Exemple d'utilisation

Le code suivant montre comment utiliser ces fonctions :

let encodedValue = htmlEncode('chalk &amp; cheese');
console.log(encodedValue); // Outputs "chalk &amp;amp; cheese"

let decodedValue = htmlDecode(encodedValue);
console.log(decodedValue); // Outputs "chalk &amp; cheese"

En utilisant ces fonctions, vous pouvez gérer efficacement Encodage HTML lors de la récupération des valeurs des champs de saisie en JavaScript.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn