Form 7 Validation Strategies
On this page
ValidateBeforeUserInput (always validates)
Error: input less than 5 characters
Min. 5 chars
new DefaultForm7() {
validateBeforeUserInput()
override lazy val rootField: F7Field = F7VerticalField()(
new F7StringField().label("Name")
.addValidation(_.currentValue.length >= 5, _ => <span>Error: input less than 5 characters</span>)
.help("Min. 5 chars")
, new F7IntOptField().label("Integer field")
, new F7SubmitButtonField(implicit fsc => BSBtn().BtnPrimary.lbl("Submit").btn.d_block.w_100)
)
}.render()
ValidateEachFieldAfterUserInput (validates immediately after input in a field)
Min. 5 chars
new DefaultForm7() {
validateEachFieldAfterUserInput()
override lazy val rootField: F7Field = F7VerticalField()(
new F7StringField().label("Name (type abc and move to next field)")
.addValidation(_.currentValue.length >= 5, _ => <span>Error: input less than 5 characters</span>)
.help("Min. 5 chars")
, new F7IntOptField().label("Integer field")
, new F7SubmitButtonField(implicit fsc => BSBtn().BtnPrimary.lbl("Submit").btn.d_block.w_100)
)
}.render()
ValidateOnAttemptSubmitOnly (only validates on submit)
Min. 5 chars
new DefaultForm7() {
validateOnAttemptSubmitOnly()
override lazy val rootField: F7Field = F7VerticalField()(
new F7StringField().label("Name")
.addValidation(_.currentValue.length >= 5, _ => <span>Error: input less than 5 characters</span>)
.help("Min. 5 chars")
, new F7IntOptField().label("Integer field")
, new F7SubmitButtonField(implicit fsc => BSBtn().BtnPrimary.lbl("Submit").btn.d_block.w_100)
)
}.render()