如何在IE 8中由Jquery在输入文本框中设置html标签?

时间:2014-07-30 07:32:15

标签: jquery

Jquery + html

html = "<i class='icon-rupee'></i>"
$("#amount").val(html + 500 + html + 300); //Wrong (because string is coming, output should show html_safe) 

输出即将到来: 值为<i class='icon-rupee'></i>500<i class='icon-rupee'></i>300

的输入字段

输出需要: 输入字段的值:₹500₹300

如何在输入文本字段中设置html代码。 任何解决方案/帮助

1 个答案:

答案 0 :(得分:1)

实际上不可能将内联元素中的HTML元素作为输入进行操作。

一种可能的方法是使用contenteditable块: 创建一个假输入,显示你想要的内容,绑定一些键盘上的事件,并用假输入的值改变你的真实输入......

我认为HTML5绝对不是一个好习惯,但似乎有效:

http://jsfiddle.net/6eHvB/2/

HTML

<input type='text' readonly name='amount' id='amount' value='500 300' />
<div id='fake-amount' contenteditable></div>

JS

var html = " <i class='fa fa-rupee'></i> ";
$("#fake-amount").html(html + 500 + html + 300).focus().on('keyup', function (event) {
    $('#amount').val($(this).text());
});

兼容性IE6 +: http://caniuse.com/contenteditable