【发布时间】:2014-02-18 17:56:19
【问题描述】:
我试图通过获取 textarea 的 VALUE 并将 innerHTML 更改为 value + mychar 来做到这一点。如果我没有向预加载的文本区域添加任何字符串,它会起作用,但之后它就不起作用(意味着它什么都不做)。为什么不在我将新字符串添加到 textarea 之后呢?我非常喜欢使用相同的方式。并且请避免使用 jQuery,除非至关重要。
HTML:
<button onclick = "AddLess()" class = "class">
<
</button>
<button onclick = "AddMore()" class = "class">
>
</button>
<button onclick = "AddExl()" class = "class">
!
</button>
<button onclick = "AddQuote()" class = "class">
"
</button>
<button onclick = "AddThing1()" class = "class">
{
</button>
<button onclick = "AddThing2()" class = "class">
}
</button>
<button onclick = "AddFin()" class = "class">
/
</button>
<button onclick = "AddSingle()" class = "class">
'
</button>
<button onclick = "AddPlus()" class = "class">
+
</button>
JavaScript:
function AddLess()
{
document.getElementById('code').innerHTML = document.getElementById('code').value + "<";
}
function AddMore()
{
document.getElementById('code').innerHTML = document.getElementById('code').value + ">";
}
function AddExl()
{
document.getElementById('code').innerHTML = document.getElementById('code').value + "!";
}
function AddQuote()
{
document.getElementById('code').innerHTML = document.getElementById('code').value + '"';
}
function AddThing1()
{
document.getElementById('code').innerHTML = document.getElementById('code').value + "{";
}
function AddThing2()
{
document.getElementById('code').innerHTML = document.getElementById('code').value + "}";
}
function AddFin()
{
document.getElementById('code').innerHTML = document.getElementById('code').value + "/";
}
function AddSingle()
{
document.getElementById('code').innerHTML = document.getElementById('code').value + "'";
}
function AddPlus()
{
document.getElementById('code').innerHTML = document.getElementById('code').value + "+";
}
function AddBracket1()
{
document.getElementById('code').innerHTML = document.getElementById('code').value + "(";
}
function AddBracket2()
{
document.getElementById('code').innerHTML = document.getElementById('code').value + ")";
}
function AddDot()
{
document.getElementById('code').innerHTML = document.getElementById('code').value + ".";
}
function AddSemi()
{
document.getElementById('code').innerHTML = document.getElementById('code').value + ";";
}
【问题讨论】:
-
为什么你设置
innerHTML而不是value?我试过了,它可以工作elem.value += myChar; -
@Салман 那时候我觉得没什么不同,我会试试的。
-
我没有看到代码有任何问题:Fiddle。您是否在控制台中收到任何错误或可能表明其他地方存在问题的内容?
-
@Bic 一开始效果很好,但是如果你专注于文本区域并输入字符串,之后就不行了。
标签: javascript jquery html textarea innerhtml