2011-10-10 16 views
0

我试图向输入的值添加一对字符实体。 我只能看到添加这些字符实体时,即时添加为内联说的事件处理程序。将字符实体从数字标识符添加到输入值

作品在线输入

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

因为我是喜欢说没有作用被称为形式的函数 显示“& # 150; >”

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

也许可以帮助更改单引号为第二个代码部分的两倍?即'ds.value =“输入名称– >”;' –

+0

@SergeyKudriavtsev我已经尝试过,并没有工作 – david

回答

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

+0

是的,非常好,我用\ u2013替换了\ u002D,感谢队友很好的回答 – david

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'); 
     } 

+0

使用textarea的innerHTML的值是一个整洁的黑客,谢谢! DhruvPathak – david

0

试试这个

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