2012-01-26 66 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