ScalaJs 0.9:在没有 jQuery 的情况下获取 HTML 输入值
ScalaJs 0.9: getting HTML input value without jQuery
我正在使用 ScalaJS,我想读取 HTML input
元素的值。
这是 HTML 代码:
<input id="nodeValue" type="number" step="1" />
这是 Scala 代码:
object TutorialApp extends JSApp {
// ...
def addNode() = {
val nodeValue = document.getElementById("nodeValue").value.toInt
}
}
它无法编译,因为
[error] TutorialApp.scala:42: value value is not a member of org.scalajs.dom.raw.Element
[error] val nodeValue = document.getElementById("nodeValue").value.toInt
在文档中,我找不到 org.scalajs.dom.raw.Element
的 value
属性。
在官方 basic tutorial 中,它立即用于 jQuery,但我会避免使用它,因为我正在研究一个小的概念证明。我确定有一种方法可以只使用 DOM API.
编辑:
通过文档我找到了 nodeValue
方法,其中 returns 一个字符串。它说虽然那是 null
for "most node types"。
我的是 number
并且确实在运行时失败,返回 null。
另一个编辑:它 returns null
也用于文本输入。
此时我感到有点迷茫。
谢谢,
彼得罗
我假设您正在获取的元素 (nodeValue
) 是一个 <input>
元素。
getElementById
不知道nodeValue
是什么元素。它无法访问 .html 来解决这个问题,因此它 returns 是一个非常通用的 Element
。但实际上,you 知道它是一个 input 元素,即 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
我正在使用 ScalaJS,我想读取 HTML input
元素的值。
这是 HTML 代码:
<input id="nodeValue" type="number" step="1" />
这是 Scala 代码:
object TutorialApp extends JSApp {
// ...
def addNode() = {
val nodeValue = document.getElementById("nodeValue").value.toInt
}
}
它无法编译,因为
[error] TutorialApp.scala:42: value value is not a member of org.scalajs.dom.raw.Element
[error] val nodeValue = document.getElementById("nodeValue").value.toInt
在文档中,我找不到 org.scalajs.dom.raw.Element
的 value
属性。
在官方 basic tutorial 中,它立即用于 jQuery,但我会避免使用它,因为我正在研究一个小的概念证明。我确定有一种方法可以只使用 DOM API.
编辑:
通过文档我找到了 nodeValue
方法,其中 returns 一个字符串。它说虽然那是 null
for "most node types"。
我的是 number
并且确实在运行时失败,返回 null。
另一个编辑:它 returns null
也用于文本输入。
此时我感到有点迷茫。
谢谢, 彼得罗
我假设您正在获取的元素 (nodeValue
) 是一个 <input>
元素。
getElementById
不知道nodeValue
是什么元素。它无法访问 .html 来解决这个问题,因此它 returns 是一个非常通用的 Element
。但实际上,you 知道它是一个 input 元素,即 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