尝试更改 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】:您忘记了onclick
s 中的括号。您应该使用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)的主要内容,如果未能解决你的问题,请参考以下文章