pie*_*909 1 html scala scala.js
我正在使用ScalaJS,我想读取HTML input元素的值。
这是HTML代码:
<input id="nodeValue" type="number" step="1" />
Run Code Online (Sandbox Code Playgroud)
这是Scala代码:
object TutorialApp extends JSApp {
// ...
def addNode() = {
val nodeValue = document.getElementById("nodeValue").value.toInt
}
}
Run Code Online (Sandbox Code Playgroud)
它不编译,因为
[error] TutorialApp.scala:42: value value is not a member of org.scalajs.dom.raw.Element
[error] val nodeValue = document.getElementById("nodeValue").value.toInt
Run Code Online (Sandbox Code Playgroud)
在文档中,我找不到的value属性org.scalajs.dom.raw.Element。
在官方的基本教程中,它可立即用于jQuery,但由于正在研究一个小的概念证明,因此我会避免使用它。我敢肯定有一种方法可以只使用DOM API。
编辑:
浏览文档时,我发现了nodeValue返回字符串的方法。它说虽然是null针对“大多数节点类型”的。Mine number在运行时确实失败,并且返回null。另一个编辑:它也返回null文本输入。
在这一点上,我感到有些困惑。
谢谢,Pietro
我假设您要获取的元素(nodeValue)是一个<input>元素。
getElementById不知道是什么样的元素nodeValue。它无权访问.html来解决这个问题,因此它返回非常通用的Element。但实际上,您知道这是一个输入元素,即一个org.scalajs.dom.html.Input。您可以使用告诉编译器.asInstanceOf[html.Input]。泛型Element没有value属性,只有Input拥有。
import org.scalajs.dom.html
val nodeValue = document.getElementById("nodeValue").asInstanceOf[html.Input].value.toInt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
709 次 |
| 最近记录: |