#Callbacks: --

Form 7 Text Input Fields

Text-based input fields

val stringField = new F7StringField().label("Name (string input)")
  .help("An empty input translates into an empty string")
  .setInternalValue("John Doe")
val stringOptField = new F7StringOptField().label("Job title")
  .help("An empty input translates into an empty option")
  .setInternalValue(Some("CEO"))
val doubleField = new F7DoubleField().label("Your height")
  .help("An empty input translates into zero")
  .setInternalValue(1.8)
val doubleOptField = new F7DoubleOptField().label("Your height")
  .help("An empty input translates into an empty option")
  .setInternalValue(Some(1.8))
val intField = new F7IntField().label("Your age")
  .help("An empty input translates into zero")
  .setInternalValue(47)
val intOptField = new F7IntOptField().label("Your age")
  .help("An empty input translates into an empty option")
  .setInternalValue(Some(47))
val stringOptTextareaField = new F7StringOptTextareaField().rows(6).label("Your message")
  .setInternalValue(Some("Fast Scala is great!"))
val localDateOptField = new F7LocalDateOptField().label("Date of birth")
  .help("An empty input translates into an empty option")
  .setInternalValue(Some(LocalDate.now().minusYears(47)))
val localDateTimeOptField = new F7LocalDateTimeOptField().label("Meeting date/time")
  .help("An empty input translates into an empty option")
  .setInternalValue(Some(LocalDateTime.now().plusDays(1)))

div.apply {
  new DefaultForm7() {
    override lazy val rootField: F7Field = F7VerticalField()(
      stringField,
      stringOptField,
      doubleField,
      doubleOptField,
      intField,
      intOptField,
      stringOptTextareaField,
      localDateOptField,
      localDateTimeOptField,
      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>String Field:</b> {stringField.getInternalValue()}</li>
            <li><b>Optional String Field:</b> {stringOptField.getInternalValue()}</li>
            <li><b>Double Field:</b> {doubleField.getInternalValue()}</li>
            <li><b>Optional Double Field:</b> {doubleOptField.getInternalValue()}</li>
            <li><b>Int Field:</b> {intField.getInternalValue()}</li>
            <li><b>Optional Int Field:</b> {intOptField.getInternalValue()}</li>
            <li><b>Optional Textarea Field:</b> {stringOptTextareaField.getInternalValue()}</li>
            <li><b>Optional LocalDate Field:</b> {localDateOptField.getInternalValue()}</li>
            <li><b>Optional LocalDateTime Field:</b> {localDateTimeOptField.getInternalValue()}</li>
          </ul>
    }

  }.render()
}
An empty input translates into an empty string
An empty input translates into an empty option
An empty input translates into zero
An empty input translates into an empty option
An empty input translates into zero
An empty input translates into an empty option
An empty input translates into an empty option
An empty input translates into an empty option