自定义注册“signupXhtml”

时间:2011-03-18 20:11:02

标签: scala lift

问候

我正在使用下一个对象来自定义signupXhtml表单

代码是下一个

对象用户使用带有ReCaptcha {

的MetaMegaProtoUser [用户]扩展用户

............................................ ............................................ ............................................

   override def signupXhtml(user: User) = {
      (<form method="post" action={ S.uri }>
          <table>
            <tr><td colspan="2">{ S.??("sign.up") }</td></tr>
            { localForm(user, false, signupFields) }
            <tr><td>&nbsp;</td><td>{ captchaXhtml() }</td></tr>
            <tr><td>&nbsp;</td><td><user:submit/></td></tr>
          </table>
       </form>)
    }

............................................ ............................................ ............................................ }

并且html中的输出是下一个

      <form action="/my/signup" method="post">
          <table>

            <tr><td colspan="2">Sign Up</td></tr>
            <tr>
            <td>Username</td>
            <td>
            <input id="txtFirstName" name="F443739586660TOG" type="text" maxlength="32" value="" />
            </td>
            </tr>
            <tr>
            <td>Lastname</td>
            <td>
            <input id="txtLastName" name="F443739586661IYO" type="text" maxlength="32" value="" />
            </td>
            </tr>
            <tr>
            <td>email</td>
            <td>
            <input id="txtEmail" name="F443739586662Z43" type="text" maxlength="48" value="" />
            </td>                                                                                                                       
            </tr>
            <tr>
            <td>passwd</td>
            <td>
                   <span>
                             <input value="*******" type="password" name="F443739586663IFM"  /> Repeat 
                             <input value="*******" type="password" name="F443739586663IFM" />
                   </span>
            </td>
            </tr>

            ............................................... 

          </table>
       </form>

我需要自定义电子邮件字段,如下所示:

      <input id="txtEmail" name="F443739586662Z43" type="text" maxlength="48" value="" onblur="return my_function();"/>

如何插入onblur =“return my_function();”在txtEmail元素?

我正在审核:

http://scala-tools.org/mvnsites/liftweb-2.0/framework/lift-persistence/scaladocs/net/liftweb/mapper/ProtoUser.scala.html#Some%2896%29

和此:

http://www.devcomments.com/Example-custom-registration-at1131253.htm

但没有找到任何帮助我的东西

谁有任何想法?

请!

2 个答案:

答案 0 :(得分:0)

我知道您可以通过在创建SHTML.text元素时将脚本作为参数传递,将脚本命令附加到大多数内置的ajax元素中。提升布线也是你可能想要研究的内容,我知道Lift In Action有一章详细介绍了如何将javascript连接到ajax元素以及关于布线,这是你可以研究的内容。您也可以将其发布到邮件列表或查看它,它可能会提供最佳结果

答案 1 :(得分:0)

在您的User类中执行以下操作:

override lazy val email = new CustomizedEmailField

protected class CustomizedEmailField(obj: User, size: Int) extends EmailField(obj, size) {
      override def toForm: Box[NodeSeq] =
        Full(SHtml.text("example@email.com", (s) => Alert("hello "+s), ("onblur", "callMyFunc();")))
    }

这应该覆盖默认的电子邮件字段。