2012-01-26 79 views
1

我遵循lift wiki中给出的示例。我想知道如何在创建自定义字段时提供像valMinLen(length,msg)这样的验证。我尝试了各种方式,但没有运气。liftScreen验证自定义字段

请给出一个验证自定义创建字段的示例。

编辑 -

对不起,如果上面的问题不明确,这是在assembla网站的例子,

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