2014-01-10 56 views
2

我有試圖正確地顯示包含雙引號的文本input場(「)的Javascript逃避雙引號兩次

這裏的value問題是代碼:

<script> 
var locked; 
function addHTML(html,id,replace){ 
    if(locked!=false){ 
     if(replace==true) document.getElementById(id).innerHTML = html; 
     else document.getElementById(id).innerHTML = document.getElementById(id).innerHTML + html; 
    } 
} 
</script> 
<DIV id="divvalues"> 
    <div onclick='javascript:addHTML("<INPUT type=\"text\" id=\"inputvalues\" name=\"values\" value=\"Click on me, \"in double quotes\", click on me\" required size=53 />","divvalues",true); document.getElementById("inputvalues").focus();'> 
     <span>Click on me, "in double quotes", click on me</span> 
    </div> 
</DIV> 

結果,只有點擊我,顯示在input。 我應該如何逃脫value裏面的雙引號任何想法屬性?

+2

如果你的事情會更容易沒有使用內聯事件處理程序;) –

+0

我不知道你現在正在做這件事的方式有一個解決方案。也許試試這個插件:http://www.appelsiini.net/projects/jeditable –

回答

0

\「用雙引號\」爲您添加一個「標記」輸入標籤。他們應該是"?

1

如果您在腳本中創建了一個函數,而不是在您的onclick中執行所有操作,它可能會更容易進行調試。

<div onclick='yourFunction()'> 

而且在你的Javascript:

相反,我會做這樣的事情開始

function yourFunction() 
{ 
    // code 
} 
0

我已經找到了最好的解決辦法是將HTML中的onclick屬性和以外的地方它裏面的Javascript var

<script> 
var locked; 
function addHTML(html,id,replace){ 
    if(locked!=false){ 
     if(replace==true) document.getElementById(id).innerHTML = html; 
     else document.getElementById(id).innerHTML = document.getElementById(id).innerHTML + html; 
    } 
} 

var divvalueshtml = '<INPUT type="text" id="inputvalues" name="values" value="Click on me, &quot;in double quotes&quot;, click on me" required size=53 />'; 
</script> 
<DIV id="divvalues"> 
    <div onclick='javascript:addHTML(divvalueshtml,"divvalues",true); document.getElementById("inputvalues").focus();'> 
     <span>Click on me, "in double quotes", click on me</span> 
    </div> 
</DIV>