JavaScript で、テキストボックスに表示する非表示フィールドの値を取得すると、エンコーディングの問題が発生する可能性があります。次の例を考えてみましょう:
<input>
jQuery を使用して非表示フィールドから値を取得すると、JavaScript はエンコーディングを失います:
$('#hiddenId').attr('value')
必要な出力は "チョーク & チーズ" です。リテラルの「&」は保持されます。
この問題に対処するために、次の方法を導入します。関数:
function htmlEncode(value) { return $('<textarea/>').text(value).html(); } function htmlDecode(value) { return $('<textarea/>').html(value).text(); }
これらの関数は、メモリ内テキストエリア要素を作成し、その内部テキストを設定して、エンコードされたコンテンツ (htmlEncode) またはデコードされた内部テキスト (htmlDecode) を取得します。この要素は DOM 上に存在しません。
次のコードは、これらの関数の使用方法を示しています。
let encodedValue = htmlEncode('chalk & cheese'); console.log(encodedValue); // Outputs "chalk &amp; cheese" let decodedValue = htmlDecode(encodedValue); console.log(decodedValue); // Outputs "chalk & cheese"
これらの関数を利用することで、効果的に保守できます。 JavaScript で入力フィールドから値を取得するときの HTML エンコード。
以上がJavaScript で入力フィールドから値を取得するときに HTML エンコーディングの損失を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。