Cemal, very intuitive -- thanks for that. On Sat, Feb 13, 2010 at 6:26 AM, Cemal Bayramoglu < jweekend_for...@cabouge.com> wrote:
> Steven, > > Start with something like this: > > zipcodeField.add(new OnChangeAjaxBehavior() { > @Override protected void onUpdate(AjaxRequestTarget target) { > // do your stuff here > } > @Override protected IAjaxCallDecorator getAjaxCallDecorator() { > return new AjaxCallDecorator() { > @Override public CharSequence decorateScript(CharSequence > script) { > return "if(this.value.length % 5 == 0){" + script + "}"; > } > }; > } > }); > > Regards - Cemal > jWeekend > OO & Java Technologies, Wicket > Consulting, Development, Training > http://jWeekend.com > > > On 12 February 2010 20:45, Steven Haines <lyg...@yahoo.com> wrote: > > Hi, > > > > I > > would like to add AJAX behavior to an application that sends an update > > to my application after a certain number of characters have been typed. > > For example, if the user is entering a zipcode, I would like a callback > > to my application to be made after the user enters the fifth character. > > > > I've > > written code using OnChangeAjaxBehavior that sends messages back to my > > application after every character has been typed, such as the following: > > > > final TextField<String> zipcodeField = new TextField<String>( > "zipcode" ); > > form.add( zipcodeField.setRequired( true ) ); > > OnChangeAjaxBehavior zipcodeUpdated = new OnChangeAjaxBehavior() { > > @Override > > protected void onUpdate( AjaxRequestTarget target ) { > > System.out.println( "Zipcode value: " + > zipcodeField.getDefaultModelObjectAsString() ); > > } > > }; > > zipcodeField.add( zipcodeUpdated ); > > > > > > I > > could check to see the size of the zipcodeField (in this example), but > > it makes my application more chatty than it needs to be. I also tried > > using onblur, which works fine, but does not satisfy my business > > requirements: > > > > final TextField<String> zipcodeField = new TextField<String>( "zipcode" > ); > > form.add( zipcodeField.setRequired( true ) ); > > > > AjaxFormComponentUpdatingBehavior zipcodeOnBlur = new > AjaxFormComponentUpdatingBehavior( "onblur" ) { > > @Override > > protected void onUpdate( AjaxRequestTarget target ) { > > System.out.println( "Zipcode value (form component): " + > getFormComponent().getModelObject() ); > > } > > }; > > zipcodeField.add( zipcodeOnBlur ); > > > > > > > > Prior > > to using Wicket (which I'm currently prototyping for my company), we > > would handle this logic in JavaScript (observe changes to the field and > > when the user enters the fifth character then we made an AJAX call back > > our Struts 2 application.) > > > > What is the best way to achieve the same end using Wicket? > > > > Thanks, in advance, for your help! > > Steve > > > > P.S. > > I started using Wicket as part of an article series (because of all of > > your passion for it) and I have to say all of you are doing incredible > > work - I love it.. Here's the link to the article series in case any of > > you are interested: > > http://www.informit.com/guides/content.aspx?g=java&seqNum=529 > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > >