2015-04-12 37 views
0

我有一個Play! 2.3從請求中綁定的表單對象。窗體對象基本上是這樣的:Play Framework - 刪除空表格條目

val languagesForm = Form(
    mapping(
     "languages" -> list(text) 
    )(apply)(unapply) 
) 

我有一些jQuery代碼,增加了一個新的languages[1]到我的HTML形式,但總是會有提交了玩空輸入!包括作爲條目。我如何刪除這些空條目?

回答

0

您需要在將控制器方法中的所有發佈值過濾到表單之前進行過濾。生成的代碼看起來是這樣的:

def removeEmptyEntries(map: Map[String, Seq[String]]): Map[String, Seq[String]] = { 
    map.filter(_._1.nonEmpty).map { case (a, b) => 
     (a, b.filter(_.nonEmpty)) 
    }.filter(_._2.nonEmpty) 
    } 

然後,控制器裏面,你這樣做:

def post = Action(parse.urlFormEncoded) { implicit request => 
    languagesForm.bindFromRequest(removeEmptyEntries(request.body)) 

    ... 
} 

map第一個過濾器可能我多餘的,但我加以防萬一。按原樣使用此代碼,它應該可以正常工作。我正在使用Scala 2.11