Aha! There's no function bound to the keyUp event, so the hidden field
doesn't update :)

On Jan 14, 4:06 pm, Mads Hartmann <[email protected]> wrote:
> Hello,
> I've got a problem when using the AutoComplete widget.
>
> ----------------
> Problem
> ----------------
> I've got three fields which are all autocomplete fields. When i submit
> the form I check if the three fields aren't blank and have different
> values
>
> If i deliberately enter the same value in field 1 and 3, lets say
> "wordpress" it display an error message (S.error("")), which is what i
> intended. The problem arises when i manually edit the field to lets
> say 'wordpress2' and hit submit - the validation fails because it
> didn't update the variable properly in my snippet. The weird thing is
> that it updates the variable if i pick a value from the autocompletion
> list it.
>
> ----------------
> Information
> ----------------
> Version: 2.0-M1
>
> ----------------
> file
> ----------------
> package scalableKvidr.snippet
>
> import xml.{Text, NodeSeq}
> import _root_.net.liftweb.util.Helpers._
> import _root_.net.liftweb.mapper._
> import net.liftweb.http.S._
> import net.liftweb.http.SHtml._
>
> //import scalableKvidr.lib.{MyAutoComplete => AutoComplete}
> import scalableKvidr.model.{Tag}
> import net.liftweb.http.{S, RequestVar}
> import scala.util.regexp
> import _root_.net.liftweb.widgets.autocomplete._
>
> /**
>  * Created by TextMate.
>  * User: Mads
>  * Date: Jan 13, 2010
>  * Time: 7:52:22 PM
>  * To change this template use File | Settings | File Templates.
>  */
>
> class SignUp {
>
>         def pickTags(xhtml: NodeSeq) :NodeSeq = {
>
>         val myoptions: List[Pair[String,String]] = ("width","300") :: Nil
>
>             object username extends RequestVar("Mads") // will fetch from
> twitter
>             object imagelink extends RequestVar("http://a1.twimg.com/
> profile_images/446431308/IMGP0648_bigger.jpg") // will fetch from
> twitter
>             object message extends RequestVar("Jeg har lige oprettet mig selv
> i det danske twitter-indekshttp://kvidr.dkunder kategorierne:")
>             object email extends RequestVar("Email")
>             object joinNewsletter extends RequestVar(true)
>             object followKivdr extends RequestVar(true)
>             object tag1 extends RequestVar("")
>             object tag2 extends RequestVar("")
>             object tag3 extends RequestVar("")
>
>                 var emailClass = if(joinNewsletter) "email" else "email 
> disabled"
>
>             def processUser() {
>                 val emailRegxp = """([\w-\.]+)@((?:[\w]+\.)+)([a-zA-Z]
> {2,4})""".r // creates a regexp
>                         var containErrors = false
>
>                 // validations
>                 if ( List(tag1.is,tag2.is,tag3.is).filter(_.length >
> 0).removeDuplicates.size != 3 ) {
>                         containErrors = true
>                                 S.error("Du skal vælge 3 unikke tags")
>                 }
>                         if ( joinNewsletter && 
> emailRegxp.findFirstMatchIn(email.is) ==
> None ){
>                                 containErrors = true
>                         S.error("Den indtastede email er ugyldig")
>                     }
>                         if (!containErrors) {
>                                 println("message: " + message + " email: " + 
> email)
>                                 S.notice("Tillykke, du er nu oprettet under 
> kategorierne: " +
> tag1.is + ", " + tag2.is + ", " + tag3.is)
>                                 redirectTo("/tilmeld/nybruger/" + tag1.is + 
> "/" + tag2.is + "/" +
> tag3.is)
>                         }
>         }
>
>         def autoCompleteData(current: String, limit: Int) :Seq[String] =
> {
>               Tag.findAll(Like(Tag.tag, current+"%")).map{ tag :Tag =>
> tag.tag.is}
>             }
>
>         bind("user", xhtml,
>                          "twitter_username" -> Text(username),
>                   AttrBindParam("imagelink",Text(imagelink),"src"),
>               "tag1"        -> AutoComplete(tag1.is,autoCompleteData
> (_,_), (input: String) => { tag1(input); println(tag1+","+input) }/*,
> myoptions ::: List(("inputClass","'tag first-tag'"))*/),
>               "tag2"        -> AutoComplete(tag2.is,autoCompleteData
> (_,_), (input: String) => { tag2(input); println(tag2+","+input) }/*,
> myoptions ::: List(("inputClass","'tag'"))*/),
>               "tag3"        -> AutoComplete(tag3.is,autoCompleteData
> (_,_), (input: String) => { tag3(input); println(tag3+","+input ) }/*,
> myoptions ::: List(("inputClass", "'tag'"))*/),
>               "message"     -> textarea(message.is, message(_)) %
> ("id" -> "message"),
>               "email"       -> text(email.is, email(_)) % ("class" ->
> emailClass) % ("disabled" -> (!joinNewsletter.is).toString),
>               "newsletter"  -> checkbox(joinNewsletter.is,
> joinNewsletter(_), ("class" -> "email-checkbox")),
>               "followkvidr" -> checkbox(followKivdr.is, followKivdr
> (_), ("class" -> "follow-kvidr-checkbox")),
>               "submit"      -> submit("Jeg er klar - tilmeld",
> processUser ))
>
>   }
>
> }
>
> Thanks :)
> Mads Hartmann Jensen
-- 
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en.


Reply via email to