0

リクエストからフォームをバインドしようとすると、返されたオブジェクトに初期値が設定されます。フォームが正しく表示されます。

def event(id: Int) = Action {
  val event : Event = Event.event(id)
  Ok(views.html.eventForm(eventForm.fill(event)))}

def update() = Action { implicit request =>
  eventForm.bindFromRequest.fold(
    formWithErrors => BadRequest(views.html.eventForm(formWithErrors)),
    updatedEvent => {
      Event.update(updatedEvent)
      Redirect(routes.Events.all())
    }
  )}

コードをデバッグすると、リスト内の各フィールドの元のデータと新しいデータの両方がリクエストに含まれていることがわかりました。ただし、updatedEvent返された にはevent呼び出しからの元のデータが含まれています。

カスタム フィールド コンストラクターを使用していますが、それがどのようにこの問題を引き起こすのかわかりません。

Git で多数の例を見てきましたが、何が問題なのかわかりません。

編集:

リクエストをバインドするときの別のフォームからのデバッグ データは次のとおりです。

バインド後のフォーム = Map(パスワード -> , メール -> )

request = Map(password -> List(, 32131), email -> List(, , some.email@yahoo.com))

必要なデータはリクエストに含まれていますが、正しくバインドされていません。

4

1 に答える 1

-1

この問題は、play フレームワークや scala ではなく、jquery モバイルにありました。

https://github.com/jquery/jquery-mobile/issues/5590

問題は最新の jquery モバイル バージョンで解決されました

于 2013-04-29T00:52:51.417 に答える