Javascript转义双引号两次

时间:2014-01-10 18:48:35

标签: javascript html

我在尝试正确显示包含双引号(“)的文本value字段的input时遇到问题。

以下是代码:

<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属性中删除双引号的任何想法吗?

3 个答案:

答案 0 :(得分:1)

如果在脚本中创建一个函数而不是在onclick中执行所有操作,则可能更容易调试。

相反,我会从做这样的事情开始:

<div onclick='yourFunction()'>

在你的Javascript中:

function yourFunction()
{
    // code
}

答案 1 :(得分:0)

双引号中的\“正在为输入标记添加”标记。它们应该是“吗?

答案 2 :(得分: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>