提升登录表单

时间:2013-09-30 05:37:57

标签: scala lift

我有这个片段:

<div width="300px">
  <form class="lift:LoginForm.logIn?form=post" id="myform">
    <fieldset>
      <input  type="email" id="l_n" name="name"/>
      <input type="password"  id="l_p"  name="password"/>
      <input type="submit"   value=">>" />
    </fieldset>
  </form>
</div>

我的问题在于name="password"部分。如果我按原样保留,则发布:

F811969795583JEBN3R aa@aa.com
F811969795584PURKON aaaa
F81196979558535XAIK true
F8119698955864YQEGF >>

F811969795631ROXIJO=aa%40aa.com&F811969795632SDW2QF=aaaa&F811969795633KC5QWR=true&F811969895634KA2IAC=%3E%3E

但我的密码字段被“取消屏蔽”(不知何故,它正在将其更改为常规编辑字段。另一方面,我的方法正确地获取值。

如果我以这种方式更改HTML代码(我将name='password'更改为name='pwd'

<div width="300px">
  <form class="lift:LoginForm.logIn?form=post" id="myform">
    <fieldset>
       <input  type="email" id="l_n" name="name"/>
       <input type="password"  id="l_p"  name="pwd"/>
       <input type="submit"  value=">>" />
     </fieldset>
   </form>
 </div>

我的密码字段被正确屏蔽,但发布方式不同,我似乎无法获得“pwd”值。

F811969795611FN3BXU aa@aa.com 
F811969895612OASG4Z >> 
pwd                 aaaa

F811969795611FN3BXU=aa%40aa.com&pwd=aaaa&F811969895612OASG4Z=%3E%3E

作为一个新手,我完全糊涂了。我错过了什么? name='password'对我的表格做了什么?

我正在使用Scala,Lift和FoBo的最新稳定版本。

1 个答案:

答案 0 :(得分:3)

除了HTML之外,您还需要发布您的代码段以获取更多细节,但我怀疑您的CSS转换是否依赖于pwd的名称,如:

"@password" #> SHtml.password(...)

这将查找代码段调用中的任何元素,并将其替换为密码字段。当您更改名称时,Lift无法再找到要转换的字段,您可以看到正在提交原始输入。

顺便提一下,您的其他字段也正在转换,但最有可能使用SHtml.text,它将使用Lift生成的输入替换您的输入。像F811969795611FN3BXU这样的名称是GUID标识符,它们对应于在服务器上创建的函数,这些函数将在提交时调用以处理该值。您可以在here上看到更多内容。