如何在html 5输入元素中填充货币符号

How to populate currency symbols in html 5 input element

本文关键字:填充 货币 符号 元素 输入 html      更新时间:2023-09-26

我有以下html输入元素:

<input size=6 type="text" id="prd_price" title="prd_price" name="prd_price" >

我想要货币符号 ман表示"阿塞拜疆马纳特"要保存在数据库中。我想将其作为HTML Input元素中的符号填充,并可能与产品的价格连接。但是,当我用UTF-8代码动态填充Input Element时,它仍然保持代码形式,而不会成为它应该成为的货币符号。

有人知道我在这里错过了什么吗?

UTF-8编码可以表示完整的Unicode目录(实际上,首字母缩略词中的字母U来自Unicode),因此您首先不需要HTML实体。这样的实体只有在当前编码无法处理的字符时才有必要,这里不是这种情况。

如果你绝对需要使用这些HTML实体(例如,你使用了一个无法调整的第三方数据源),你需要意识到它们只在HTML上下文中有意义。jQuery中一个相当常见的错误是在应该使用。html()的地方使用。text()。

在这种精确的情况下,您有一个<input>元素,因此您不能使用任何一个。您唯一的选择是.val()。但是,由于<input>不能包含HTML,因此您提供给.val()的所有内容最终将作为纯文本处理。

您可以使用的一个小技巧是创建一个分离的节点,以便您可以使用.html()填充HTML和.text()以提取纯文本表示:

var $input = $("#prd_price");
// Original string "&#1084 ;&#1072 ;&#1085 ;" fixed:
var symbols = "&#1084;&#1072;&#1085;"
var plainText = $("<span></span>").html(symbols).text()
$input.val(plainText);

…将呈现为:

ман
演示

首先我得到了阿塞拜疆马纳特的UTF-8代码ман这是能够运行在javascript从"https://r12a.github.io/apps/conversion/"。在这种情况下,它是'u043C'u0430'u043D。然后我用下面的代码运行它,使用javascript让它在输入元素中显示:

var x = "'u043C'u0430'u043D";
var r = /''u(['d'w]{4})/gi;
x = x.replace(r, function (match, grp) {
    return String.fromCharCode(parseInt(grp, 16)); } );
x = unescape(x);
console.log(x);