javascript - 使用带有多个计算的 Brython 代码
问题描述
我正在尝试在在线课程中开始使用 Brython。为了测试它,我创建了一个简单的单位转换练习,学生以 mph 为单位填写速度并以 ft/s 为单位返回速度。工作正常。但我发现我添加的任何第二个计算都被忽略了。有些东西需要清零,或刷新,或重置或其他东西!任何意见,将不胜感激。这个简单练习的代码如下(我没有加载 MathJax,所以 $ 符号)
...您会看到第一个工作正常,而第二个工作正常,除了更改函数的名称和所有变量都被忽略之外,其他都是相同的。
谢谢!
<HTML>
<HEAD>
<META charset="utf-8">
<script type="text/javascript"
src="https://cdn.rawgit.com/brython-dev/brython/3.3.5/www/src/brython.js">
</script>
<script type="text/javascript"
src="https://cdn.rawgit.com/brython- dev/brython/3.3.5/www/src/brython_stdlib.js">
</script>
</HEAD>
<BODY bgcolor="white" onload="brython(1)">
<H1>test</H1>
<!-- silly test example anticipating multiple unit conversions in a row: -->
<!-- This will work if I remove the previous script and form...but won't if it follows -->
<SCRIPT type ="text/python">
import math
from browser import document
@document["vmph"].bind("change")
def gcal(xx):
# get the first element with tag "form" in the document
fh = document.select("form")[0]
vvmph = float(fh.vmph.value)
vvftps = vvmph*1.4666700004
fh.vftps.value = vvftps
</SCRIPT>
<FORM method="" action="">
<p class="ex1">For $v$ mph = <INPUT Type="text" Name="vmph" id="vmph" Value="" Size="10" autocomplete="off"> $\;\;$mph<br>
we get that $v$ ft per second = <INPUT Type="text" Name="vftps" Value="" Size="10">.
</p>
</FORM>
<SCRIPT type ="text/python">
import math
from browser import document
@document["vmph2"].bind("change")
def gcal2(xxx):
# get the first element with tag "form" in the document
fh2 = document.select("form")[0]
vvmph2 = float(fh2.vmph2.value)
vvftps2 = vvmph2*1.4666700004
fh2.vftps2.value = vvftps2
</SCRIPT>
<FORM method="" action="">
<p class="ex1">For $v$ mph = <INPUT Type="text" Name="vmph2" id="vmph2" Value="" Size="10" autocomplete="off"> $\;\;$mph<br>
we get that $v$ ft per second = <INPUT Type="text" Name="vftps2" Value="" Size="10">.
</p>
</FORM>
</BODY>
</HTML>
解决方案
工作甚至在您复制和粘贴的代码的注释上:第二个脚本检索回第一个表单,并尝试更改那里不存在的“vmph2”控件。第二个函数应该[1]
从文档表单中获取索引。但是,您无需获取表单(您的 fh 和 fh2 变量),然后继续进行控件,您可以简单地使用document["vmph"]
and获取对相关标签的引用document["vmph2"]
。
推荐阅读
- elasticsearch - 从 HEAD 上的不成功 (401) 低级别调用构建的无效 NEST 响应
- python - 精灵出现太快
- ngrx - 在另一个动作 ngrx 的成功完全响应时触发一个动作
- java - 规范 JPA - 内部 + where 子句
- git - 如何将版本控制添加到大厅管道?
- python - 如何使用 selenium python 删除 Firefox 中无响应的脚本
- node.js - 从 Rust 生成的节点 FFI 调用和动态库
- javascript - 获取要定期调用的函数
- apache-spark-sql - 借助 Spark-Sql 或 PySpark 使用两个表创建第三个表(不使用 Panda(Python))
- mysql - MySql 根据其他行选择行