将数字标识符中的字符实体添加到输入值

时间:2011-10-10 06:27:29

标签: javascript

我试图在输入值中添加几个字符实体。 我只能在向事件处理程序添加内联时添加这些字符实体。

内联工作

value="enter name –>" onfocus="if(this.value=='enter name –>'){this.value=''}; 

剂量不起作用,因为我喜欢说被称为一个功能 它显示" &安培;#150;&安培; GT;"

if(ds.value==''){
    ds.value='enter name –>';
    }

3 个答案:

答案 0 :(得分:1)

您可以在javascript中输入直接值, 或者在分配之前用简单的javascript解码它们。

请参阅:http://jsfiddle.net/mFtVa/1/

<input id='inline' value="enter name &#150;&gt;"  />
<input id='func_direct' value=""  />
<input id='func_entity' value=""  />

<script>

    var ds= document.getElementById('func_direct');   

    var de = document.getElementById('func_entity');           


    function decode(str)
    {
         var s = document.createElement("TEXTAREA");
         s.innerHTML = str;
         return s.value;
    }

    if(ds.value==''){    
        ds.value='enter name ->';
        }    

    if(de.value==''){   
        de.value = decode('enter name &#150;&gt');
        }

答案 1 :(得分:1)

另一种方法是使用unicode:

<input value="enter name &#x2D;&#x3E;" onfocus="if(this.value=='enter name &#x2D;&#x3E;'){this.value=''};" onblur="check(this);" />

所有值均为十六进制。

function check(ds) {
    if(ds.value==''){
        ds.value='enter name \u002D\u003E';
    }
}

另见jsfiddle

答案 2 :(得分:0)

试试这个

ds.value='enter name \&#150;&gt;';