Chapter 09

フォームハンドリングの例

NoboNobo
NoboNobo
2020.10.28に更新
このチャプターの目次

Formの値のハンドリング

form タグに@submit='{{c.OnSubmit}}'を付与しておき、
以下のようなメソッドでハンドリングします。
この際、Form2Go に form エレメントを渡すと form で送ろうとする
パラメータセットをmap[string]interface{}型で受け取ることができます。

import "github.com/nobonobo/spago/jsutil"
func (c *Component) OnSubmit(ev js.Value) {
	ev.Call("preventDefault")
	params := jsutil.Form2Go(ev.Get("target"))
	...
}
  • ev.Call("preventDefault")は実際のSubmit処理をキャンセルするのに必要です。
    (キャンセルしない場合ページの再読み込みが発生してしまいます)
  • params["フォームエレメントのname"]にて各パラメータにアクセスできます。

注意点

  • multiple指定を持ったselectタグにてoptionタグが複数選択された場合、[]interface{"value1", "value2"}という値になりますが、単数選択ならstring型になることに注意してください(multiple指定なら型スイッチが必要)。
  • プリミティブ型ではない場合はjs.Value型の値としてJSレイヤのオブジェクトのまま格納されます。