1

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

我还发现了这个问题: Set value of textarea in jQuery but nothing in here 对我来说没有帮助:(

这是我的尝试方法:

    <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 的值。但如果现在不需要的话,我宁愿暂时不要有代码墙。

4

2 回答 2

0

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

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

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

于 2018-01-14T20:46:09.277 回答
0

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

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>

于 2018-01-13T12:59:40.537 回答