2012-01-26 5 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をチェックしてください。

関連する問題