#Callbacks: --

Form 7 Select Input Fields

Select input-based fields


val colors: List[(String, Color)] = List(
  "WHITE" -> java.awt.Color.WHITE
  , "LIGHT_GRAY" -> java.awt.Color.LIGHT_GRAY
  , "GRAY" -> java.awt.Color.GRAY
  , "DARK_GRAY" -> java.awt.Color.DARK_GRAY
  , "BLACK" -> java.awt.Color.BLACK
  , "RED" -> java.awt.Color.RED
  , "PINK" -> java.awt.Color.PINK
  , "ORANGE" -> java.awt.Color.ORANGE
  , "YELLOW" -> java.awt.Color.YELLOW
  , "GREEN" -> java.awt.Color.GREEN
  , "MAGENTA" -> java.awt.Color.MAGENTA
  , "CYAN" -> java.awt.Color.CYAN
  , "BLUE" -> java.awt.Color.BLUE
)
val selectField = new F7SelectField[(String, Color)](colors).label("Color").option2String(_._1)
  .help("One must always be selected")
val selectOptField = new F7SelectOptField[(String, Color)]().optionsNonEmpty(colors).label("Color").option2String(_.map(_._1).getOrElse("--"))
  .help("Selection may be empty")
val multiSelectField = new F7MultiSelectField().options(colors).label("Colors").size(8).option2String(_._1)
  .help("Multiple can be selected")

div.apply {
  new DefaultForm7() {
    override lazy val rootField: F7Field = F7VerticalField()(
      selectField,
      selectOptField,
      multiSelectField,
      new F7SubmitButtonField(implicit fsc => BSBtn().BtnPrimary.lbl("Submit").btn.d_block.w_100)
    )

    override def postSubmitForm()(implicit fsc: FSContext): Js = BSModal5.verySimple("Submitted!", "Ok") {
      modal =>
        implicit fsc =>
          <h6>Your data:</h6> ++
          <ul>
            <li><b>Select Field:</b> {selectField.getInternalValue()._1}</li>
            <li><b>Optional Select Field:</b> {selectOptField.getInternalValue().map(_._1)}</li>
            <li><b>Multi-Select Field:</b> {multiSelectField.getInternalValue().map(_._1).mkString("; ")}</li>
          </ul>
    }

  }.render()
}
One must always be selected
Selection may be empty
Multiple can be selected