【问题标题】:Trying to change value of Textarea (using Skulpt)尝试更改 Textarea 的值(使用 Skulpt)
【发布时间】:2018-06-22 17:31:23
【问题描述】:

好的,我正在使用 Skulpt 在网页上编写 Python 程序。 单击按钮后,我希望解释器中的文本发生变化。 但无论我如何尝试,文本区域中的代码都不会改变。 但是,如果我“警告”文本区域的值,它会显示更改后的版本,表明该按钮有效。

我也发现了这个问题: Set value of textarea in jQuery 但在我的情况下,这里没有任何帮助:(

这是我的尝试:

    <textarea id="theTextArea">print 'Hello World!'</textarea>
    <div id="controls">
    <button type="button" onclick="replaceCode()">Replace</button>
    <button type="button" onclick="testAlert()">Alert Me</button>
    </div>
    <script>
    function replaceCode(){
        document.getElementById('theTextArea').value = "print 'Thats new code'";
    };
    function testAlert(){
        alert(document.getElementById('theTextArea').value);
    };
    </script>

我也尝试过更改 .innerHTML、.text 并没有实际替换 textarea 中的文本。

如果有人认为它可以提供帮助,我可以添加完整的 HTML 文档以及在线 python 解释器的整个 Skulpt 设置,以防它不让我以常规方式更改 textarea 的值。但如果暂时不需要的话,我宁愿暂时不要有代码墙。

【问题讨论】:

标签: javascript text textarea skulpt


【解决方案1】:

您忘记了onclicks 中的括号。您应该使用HTMLTextAreaElement.innerHTML 来更改文本区域的内容

function replaceCode(){
    document.getElementById('theTextArea').innerHTML = "print 'Thats new code'";
};
function testAlert(){
    alert(document.getElementById('theTextArea').innerHTML);
};
<textarea id="theTextArea">print 'Hello World!'</textarea>
<div id="controls">
<button type="button" onclick="replaceCode()">Replace</button>
<button type="button" onclick="testAlert()">Alert Me</button>
</div>

【讨论】:

  • 谢谢,你的速度非常快。我在发布后一分钟内编辑了这个。当我手工写这篇文章时,一个错误溜走了;)
【解决方案2】:

事实证明,Skulpt 妨碍了我在单击按钮时修改 Python 代码。我需要使用可能在 Skulpt 附带的一个导入文档中定义的函数。函数如下所示:

    editor.setValue("print 'Thats new code'");

然后它实际上在 textarea 中发生了变化 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多