2016-09-12 1 views
-2

У меня есть следующий HTML-элемент ввода:Как заполнить символы валюты в HTML 5 элементе ввода

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

Я хочу валюта Символ м а н для «маната » будет сохранен в базе данных. Я хотел бы заполнить это как символ внутри элемента HTML Input и, возможно, связать его с ценой продукта. Но когда я динамически заполняю входной элемент кодом UTF-8, он остается в форме кода и не становится символом валюты, который, как предполагается, станет.

Любой знает, что я здесь отсутствует ...

+0

работает для меня: https://jsfiddle.net/m1hu1hv9/ –

+0

Почему именно у вас есть HTML ан в первую очередь? И, в любом случае, HTML-объекты отлично работают в простом HTML. Вы используете язык сценариев, о котором вы не говорили? –

+0

Да Я использовал функции JQuery Ajax, чтобы получить символы UTF-8 из базы данных, объединить и заполнить входной элемент ценой продукта в этом элементе ввода. – UmarAbbasKhan

ответ

-1

Прежде всего, я получил код 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); 
 

1

Кодировка UTF-8 может представлять полный каталог Unicode (на самом деле, письмо U в аббревиатуре от Unicode), поэтому вам не нужны HTML-сущности в первую очередь. Такие объекты необходимы только в том случае, если у них есть символы, которые невозможно обработать текущей кодировкой, что здесь не так.

Если вам абсолютно необходимо использовать эти объекты HTML (например, вы потребляете стороннюю ленту данных, которую вы не можете настроить), вам нужно понять, что они имеют смысл только в контексте HTML. Довольно распространенная ошибка в jQuery заключается в использовании .text(), где вы действительно должны использовать .html().

В этой конкретной ситуации у вас есть элемент <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); 

... будет оказывать как:

ман 

Demo

Смежные вопросы