尝试更改 Textarea 的值(使用 Skulpt)

Posted

技术标签:

【中文标题】尝试更改 Textarea 的值(使用 Skulpt)【英文标题】:Trying to change value of Textarea (using 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 的值。但如果暂时不需要的话,我宁愿暂时不要有代码墙。

【问题讨论】:

您的代码似乎没问题,我在这里试过,它正在工作 jsbin.com/gapajeqipa/edit?html,output 。也许只是某个地方的错字 【参考方案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 中发生了变化 :)

【讨论】:

以上是关于尝试更改 Textarea 的值(使用 Skulpt)的主要内容,如果未能解决你的问题,请参考以下文章

Puppeteer:为什么textarea中的值返回

表单提交后重置textarea的值

JS更改值后验证textarea

使用php发布“textarea”的值

设置CKEditor 5的值

为啥在函数中登录时 textarea 的值总是空的? [复制]