我正在关注lift wiki中给出的示例。我想知道在创建自定义字段时如何提供valMinLen(length,msg)
之类的验证。我试过各种各样的方法,但没有运气。
请举例说明如何为自定义创建的字段提供验证。
编辑 -
对不起,如果上面的问题不清楚,这就是组合网站中的例子,
object MyScreen extends LiftScreen {
val password = new Field {
type ValueType = String
override def name = "Password"
override implicit def manifest = buildIt[String]
override def default = ""
override def toForm: Box[NodeSeq] = SHtml.password(is, set _)
}
}
在这里我需要添加valMinLen
验证,或者我需要访问生成的错误字符串以将其替换为我的错误字符串。是否可能
答案 0 :(得分:1)
正如Using LiftScreen field or text中所述,创建自定义字段的方法不止一种。
如果在LiftScreen中使用makeField方法,可以这样说:
makeField[String](
title,
"",//"No phone number entered",
field => SHtml.text("", (_:String)=>{registerThisSnippet()}, ("class","phone")),
valMinLen(length,msg)
)
如果要在发布的示例中使用更详细但更彻底的显式对象创建,则需要检查Field类中验证属性所在的位置。
object MyScreen extends LiftScreen {
val password = new Field {
type ValueType = String
override def name = "Password"
override implicit def manifest = buildIt[String]
override def default = ""
override def toForm: Box[NodeSeq] = SHtml.password(is, set _)
override def validations = valMinLen(length,msg) _ :: super.validations
}
}
有关非常完整的示例,请查看优秀的Lift Cookbook recipe for validations。