Hi Igor, I looked at the JavaScript that is generated when adding an AjaxFormComponentUpdatingBehavior and it does not include any form fields other than the component to which it is added:
onChange="if(this.value.length >= 5){var wcall=wicketAjaxPost('?wicket:interface=:1:gettingStartedPanel:step_1:zipcode::IBehaviorListener:0:', wicketSerialize(Wicket.$('zip')),function() { }.bind(this),function() { }.bind(this), function() {return Wicket.$('zip') != null;}.bind(this));}"> Should I look at submitting the entire form via Ajax when my conditions are met? Or any other ideas about how to add a form field to the callback? Here is what I added to my WebPage: // Street 1 final TextField<String> street1 = new TextField<String>( "street1" ); street1.setOutputMarkupId( true ); street1.setMarkupId( "address1" ); form.add( street1.setRequired( true ) ); final TextField<String> zipcodeField = new TextField<String>( "zipcode" ); zipcodeField.setOutputMarkupId( true ); zipcodeField.setMarkupId( "zip" ); form.add( zipcodeField.setRequired( true ) ); zipcodeField.add( new AjaxFormComponentUpdatingBehavior( "onChange" ) { private static final long serialVersionUID = 1L; @Override public void onUpdate( AjaxRequestTarget target ) { System.out.println( "Street 1 (final): " + street1.getValue() ); TextField<String> street1f = ( TextField<String> )form.get( "street1" ); System.out.println( "Street 1 (form): " + street1f.getValue() ); System.out.println( "Zipcode value (form component): " + getFormComponent().getModelObject() ); } @Override protected IAjaxCallDecorator getAjaxCallDecorator() { return new AjaxCallDecorator() { private static final long serialVersionUID = 1L; @Override public CharSequence decorateScript( CharSequence script ) { // Only return the script (which means that it will be executed) after the // user enters the 5th digit (or more) return "if(this.value.length >= 5){" + script + "}"; } }; } }); ...and on another note, I had the same code with an OnChangeAjaxBehavior and the callback was made when the 5th character was typed, but with the AjaxFormComponentUpdatingBehavior the callback was made when the component lost focus .. Thanks Steve ----- Original Message ---- From: Igor Vaynberg <igor.vaynb...@gmail.com> To: users@wicket.apache.org; Steven Haines <lyg...@yahoo.com> Sent: Tue, April 20, 2010 6:25:03 PM Subject: Re: OnChangeAjaxBehavior and other form components user AjaxFormComponentUpdatingBehavior -igor On Tue, Apr 20, 2010 at 2:37 PM, Steven Haines <lyg...@yahoo.com> wrote: > Hi, > > I have a form component to which I added an OnChangeAjaxBehavior derivative > and in its onUpdate() method I want to access the contents of it *and* > another form field. > > Here's what I'm doing: > > form.add( new TextField<String>( "street1" ).setRequired( true ) ); > final TextField<String> zipcodeField = new TextField<String>( > "zipcode" ); > zipcodeField.setOutputMarkupId( true ); > zipcodeField.setMarkupId( "zip" ); > form.add( zipcodeField.setRequired( true ) ); > > // Load cities when the zipcode is updated > zipcodeField.add( new OnChangeAjaxBehavior() > { > private static final long serialVersionUID = 1L; > > @Override > protected void onUpdate( AjaxRequestTarget target ) > { > //TextField<String> street1 = ( TextField<String> )form.get( > "street1" ); > //System.out.println( "Street 1: " + street1.getValue() ); > System.out.println( "Zipcode value (form component): " + > getFormComponent().getModelObject() ); > // Do something with street1 and the zipcode.... > } > } ); > > The problem is that, although I've tried different techniques to obtain the > value of the street1 text field, it is always returning null. I've tried > creating street1 as a final text field and then calling its getValue() > method, I've tried getting it from the form, as above, and I've tried reading > from the underlying form model, all of which return null. > > Any suggestions? > > Thanks > Steve > > > --------------------------------------------------------------------- > 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 --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org