Errrmm, I think your mistaken in your example. I think you mean:

<lift:someSnippet form="post">
  <p>
    <label for="username">Username</label>
    <br/>
    <f:username f:id="username" />
  </p>
  <p><f:submit /></p>
</lift:someSnippet>

You don't need to manually populate content inside the bind placeholders -
its removed anyway so your not really gaining anything by doing this. The
key is understanding that attributes with the appropriate prefix will be
merged into the resulting server side element.

Cheers, Tim


On 13/04/2009 21:20, "Dmitry Lipovoi" <dmitry.lipo...@gmail.com> wrote:

> 
> ... or You can set element's id manually in template:
> 
> <lift:someSnippet form="post">
>   <p>
>     <label for="username">Username</label>
>     <br/>
>     <f:username f:id="username"><input id="username" type="text"
> name="username" value="username"/></f:url>
>   </p>
>   <p>
>     <f:submit><input type="submit" value="Do It!"/></f:submit>
>   </p>
> </lift:someSnippet>
> 
> 
> On Mon, Apr 13, 2009 at 11:58 PM, Charles F. Munat <c...@munat.com> wrote:
>> 
>> The "for" attribute in the <label> element points at the <input>
>> element's *id*, not it's name. Also, where is the label? You've got an
>> element, but no label (unless I'm still asleep).
>> 
>> http://www.w3.org/TR/html401/interact/forms.html#h-17.9.1
>> 
>> So this is actually quite easy:
>> 
>> bind("login", xhtml,
>>   "username" -> <label for="username">Username {SHtml.text(username,
>>     username = _, ("id", "username"))}</label>,
>>   ...
>> 
>> That names for the inputs are generated doesn't matter because the for
>> attribute refers to the id, not the name.
>> 
>> You could, of course, use David's method but add something that sets the
>> id attribute = the name attribute since the name is going to be unique
>> on the page.
>> 
>> Chas.
>> 
>> João Pereira wrote:
>>> it's looks great and works great too. :)
>>> 
>>> thank you
>>> 
>>> On Mon, Apr 13, 2009 at 5:18 PM, David Pollak
>>> <feeder.of.the.be...@gmail.com <mailto:feeder.of.the.be...@gmail.com>>
>>> wrote:
>>> 
>>>     def label(in: Elem): NodeSeq = <label for={in \ "@name"} /> ++ in
>>> 
>>>     bind("login", xhtml,
>>>             "username" -> label(SHtml.text(username, username(_)))
>>> 
>>>     How does that look?
>>> 
>>>     2009/4/13 João Pereira <joaomiguel.pere...@gmail.com
>>>     <mailto:joaomiguel.pere...@gmail.com>>
>>> 
>>>         Hello,
>>> 
>>>         I have the following snippet:
>>> 
>>>         HTML:
>>> 
>>>             <div id="login"><lift:login.login form="post">
>>>                 <login:username />
>>>                 <login:password />
>>>                 <login:submit />
>>>             </lift:login.login></div>
>>> 
>>>         Scala:
>>> 
>>>         bind("login", xhtml,
>>>                  "username"->SHtml.text(username,username(_)),
>>>                  "password"->SHtml.text(password, password(_)),
>>>                  "submit" ->SHtml.submit("login", authenticate))
>>> 
>>> 
>>>         Rendered HTML is:
>>> 
>>>         <div id="login"><form method="post" action="/login">
>>>         <input name="F1177922287215MUE" type="text" value="zxczxc" />
>>>         <input name="F1177922287216DXQ" type="text" value="zxcczx" />
>>>         <input name="F1177922287217EXX" type="submit" value="login" />
>>>         </form></div>
>>> 
>>> 
>>>         What is the best strategy to have a <label for="..."> HTML tag
>>>         rendered for each input field?
>>> 
>>>         The desired output will be:
>>> 
>>>         <div id="login"><form method="post" action="/login">
>>>         *<label for="F1177922287215MUE"/>*
>>>         <input name="F1177922287215MUE" type="text" value="zxczxc" />
>>>         *<label for="F1177922287216DXQ"/>*
>>>         <input name="F1177922287216DXQ" type="text" value="zxcczx" />
>>>         <input name="F1177922287217EXX" type="submit" value="login" />
>>>         </form></div>
>>> 
>>> 
>>>         thanks
>>>         --
>>>         João Miguel Pereira, PMP
>>>         http://jpereira.eu
>>>         http://www.linkedin.com/in/joaomiguelpereira
>>>         joaomiguel.pere...@gmail.com <mailto:joaomiguel.pere...@gmail.com>
>>>         (351) 96 275 68 58
>>> 
>>> 
>>> 
>>> 
>>> 
>>>     --
>>>     Lift, the simply functional web framework http://liftweb.net
>>>     Beginning Scala http://www.apress.com/book/view/1430219890
>>>     Follow me: http://twitter.com/dpp
>>>     Git some: http://github.com/dpp
>>> 
>>> 
>>> 
>>> 
>>> 
>>> --
>>> João Miguel Pereira, PMP
>>> http://jpereira.eu
>>> http://www.linkedin.com/in/joaomiguelpereira
>>> joaomiguel.pere...@gmail.com <mailto:joaomiguel.pere...@gmail.com>
>>> (351) 96 275 68 58
>>> 
>>>> 
>> 
>>> 
>> 
> 
> > 
> 



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to