试图改变Textarea的价值(使用Skulpt)

时间:2018-01-13 12:54:26

标签: javascript text textarea skulpt

好的,我正在使用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文档与整个Skulpt设置为在线python解释器,以防它以某种方式不让我以常规方式更改textarea的值。但是,如果现在不需要,我现在不希望有一道代码。

2 个答案:

答案 0 :(得分:0)

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

&#13;
&#13;
function replaceCode(){
    document.getElementById('theTextArea').innerHTML = "print 'Thats new code'";
};
function testAlert(){
    alert(document.getElementById('theTextArea').innerHTML);
};
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

事实证明,Skulpt正在按照按钮点击修改python代码的方式。我需要使用一个函数,该函数可能是在Skulpt附带的一个导入文档中定义的。该函数如下所示:

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

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