在textarea上键入一些文本后,Javascript无法更改文本

时间:2016-10-03 16:23:44

标签: javascript html

textarea上输入一些文字后,这三个按钮就可以了。

  

我在谷歌浏览器中检查一下,我在html呈现的代码中看到它成功添加innerHtml,但它没有在textarea上显示。

为什么不起作用?

如何解决此问题?

    function clickTicK(element){
        var texta = document.getElementById(element);
        texta.innerHTML = '✔';
    }
    function clickCross(element){
        var texta = document.getElementById(element);
        texta.innerHTML = '✘';
    }

    function enable(element) {
        var texta = document.getElementById(element);
        texta.innerHTML = '';
    }
<textarea name="textareaname" id="textareaid" placeholder="click here to edit"></textarea><br>
<button onclick="enable('textareaid');">&#9998;</button><br>
<button onclick="clickTicK('textareaid');">&#x2714;</button><br>
<button onclick="clickCross('textareaid');">&#x2718;</button>

如果我使用textarea.value,那么它可以正常工作,但会显示代码“&amp;#x2714”或“&amp;#x2718”但不是符号。

        function clickTicK(element){
            var texta = document.getElementById(element);
            texta.value = '&#x2714;';
        }
        function clickCross(element){
            var texta = document.getElementById(element);
            texta.value = '&#x2718;';
        }

        function enable(element) {
            var texta = document.getElementById(element);
            texta.value = '';
        }
    <textarea name="textareaname" id="textareaid" placeholder="click here to edit"></textarea><br>
    <button onclick="enable('textareaid');">&#9998;</button><br>
    <button onclick="clickTicK('textareaid');">&#x2714;</button><br>
    <button onclick="clickCross('textareaid');">&#x2718;</button>

2 个答案:

答案 0 :(得分:1)

您可以使用jQuery的html()函数来提取所需的html,然后将值设置为该值。见下面的例子:

&#13;
&#13;
function clickTicK(element){
        var texta = document.getElementById(element);
        texta.value = $('<span>').html('&#x2714;').html();
    }
    function clickCross(element){
        var texta = document.getElementById(element);
        texta.value = $('<span>').html('&#x2718;').html();
    }

    function enable(element) {
        var texta = document.getElementById(element);
        texta.value = '';
    }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<textarea name="textareaname" id="textareaid" placeholder="click here to edit"></textarea><br>
<button onclick="enable('textareaid');">&#9998;</button><br>
<button onclick="clickTicK('textareaid');">&#x2714;</button><br>
<button onclick="clickCross('textareaid');">&#x2718;</button>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您必须在value

上使用innerHTML而不是<textarea/>

&#13;
&#13;
function clickTicK(element){
        var texta = document.getElementById(element);
        texta.value = '&#x2714;';
    }
    function clickCross(element){
        var texta = document.getElementById(element);
        texta.value = '&#x2718;';
    }

    function enable(element) {
        var texta = document.getElementById(element);
        texta.value = '';
    }
&#13;
<textarea name="textareaname" id="textareaid" placeholder="click here to edit"></textarea><br>
<button onclick="enable('textareaid');">&#9998;</button><br>
<button onclick="clickTicK('textareaid');">&#x2714;</button><br>
<button onclick="clickCross('textareaid');">&#x2718;</button>
&#13;
&#13;
&#13;