2016-11-10 4 views
0

私はscala jsのWebページのフォームにあるテキストボックスからデータを取得したいと思います。私は次のようにHTML'`のonclickイベントを使用して、それを試してみた:スカラjsでボタンが押されたときにWebページからデータを取得する

<button id="submit" type="button" onclick="TutorialApp().fun()">Submit</button> 

と私は同じように私TutorialAppオブジェクト内の関数を作成しました:

object TutorialApp extends JSApp { 

@JSExport 
def main(): Unit = { 
    ..... 
} 

def fun():Unit = { 
println("Button is clicked") 
}  

しかし、それはそのTutorialApp()エラーを示しています。 fun()は関数ではありません。私のコードで何が間違っていますか?

答えて

3

、あなたのコード内でのonclickハンドラを登録する必要があります

import org.scalajs.dom 

def main(): Unit = { 
    dom.document.getElementById("submit").addEventListener("click", fun _) 
} 

利点は、あなたがfunをエクスポートする必要がないということであり、あなたは、あなたが名前を変更する場合は、時間名の安全性(つまり、コンパイル取得しますfun、どこかに名前を変更するのを忘れた場合、コンパイラから通知されます)。

1

これは、fun()の前に@JSExportを追加することによって機能しました。私はそれに気付かなかった。

代替として
関連する問題