【问题标题】:Adding character to end of textarea or caret position using JavaScript?使用 JavaScript 将字符添加到文本区域的末尾或插入符号位置?
【发布时间】:2014-02-18 17:56:19
【问题描述】:

我试图通过获取 textarea 的 VALUE 并将 innerHTML 更改为 value + mychar 来做到这一点。如果我没有向预加载的文本区域添加任何字符串,它会起作用,但之后它就不起作用(意味着它什么都不做)。为什么不在我将新字符串添加到 textarea 之后呢?我非常喜欢使用相同的方式。并且请避免使用 jQuery,除非至关重要。
HTML

<button onclick = "AddLess()" class = "class">
    &lt;
    </button>
    <button onclick = "AddMore()" class = "class">
    &gt;
    </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


【解决方案1】:
function _addChar(c)
{
  document.getElementById('code').value = document.getElementById('code').value + c;
}

为我工作

【讨论】:

    猜你喜欢
    • 2020-01-18
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多