Re: ajaxformcomponent
Ok... I think I solved it, but it feels like it's an over complicated way of doing it... comments? --- final TextFieldString fromAddress = new TextFieldString(fromAddress); // fromAddress.add(EmailAddressValidator.getInstance()); fromAddress.add(new AjaxFormComponentUpdatingBehavior(onchange) { @Override protected void onUpdate(AjaxRequestTarget target) { IValidatableString fromAddressForValidation = new IValidatableString() { private boolean isValid = true; public void error(IValidationError error) { isValid = false; } public String getValue() { return fromAddress.getValue(); } public boolean isValid() { return isValid; } }; EmailAddressValidator.getInstance() .validate(fromAddressForValidation); if (fromAddressForValidation.isValid()) { System.out.println(valid!); } else { System.out.println(not valid); } } }.setThrottleDelay(Duration.ONE_SECOND)); --- On 2009-06-30 18:15, Stefan Malmesjö wrote: The subject should have been AjaxFormComponentUpdatingBehavior... sorry about that :-[ On 2009-06-30 18:12, Stefan Malmesjö wrote: Hi, I'm playing around with validation and ajax, and can't quite seem to do what I want. The goal is to have a checkbox toggle enabled/disabled depending on whether the user has entered a valid email address. So, my simple test looks like this: -- final TextFieldString fromAddress = new TextFieldString(fromAddress); fromAddress.add(EmailAddressValidator.getInstance()); fromAddress.add(new AjaxFormComponentUpdatingBehavior(onchange) { @Override protected void onUpdate(AjaxRequestTarget target) { if (fromAddress.isValid()) { System.out.println(valid); } else { System.out.println(not valid); } } }.setThrottleDelay(Duration.ONE_SECOND)); If the entered address is valid, then I do get the expected output valid But if it's not valid, then I get a warning message: -- WARN - WebSession - Component-targetted feedback message was left unrendered. This could be because you are missing a FeedbackPanel on the page. Message: [FeedbackMessage message = 'asd...@l' is not a valid email address., reporter = fromAddress, level = ERROR] I do have a feedbackpanel on the page (if I submit the form, then I get the asd...@l is not a valid email address output there). However, I really don't want the error message being output during the ajax process, I just want to see if it's valid, and then enable/disable the checkbox accordingly. I also tried playing with AjaxEventBehavior instead of AjaxFormComponentUpdatingBehavior, but then the value of the input field always is null, and hence valid :) I tried using fromAddress.inputChanged, but that made no difference that I could see. I'm sure I'm making some stupid mistake. Can anyone guide me in the right direction? /Stefan
Re: ajaxformcomponent
not sure why you are going through all that. add the validator. behavior#onupdate() will be called when validation passes and the model is updated, behavior#onerror() will be called if there is an error. -igor 2009/7/1 Stefan Malmesjö s.m.mo...@gmail.com: Ok... I think I solved it, but it feels like it's an over complicated way of doing it... comments? --- final TextFieldString fromAddress = new TextFieldString(fromAddress); // fromAddress.add(EmailAddressValidator.getInstance()); fromAddress.add(new AjaxFormComponentUpdatingBehavior(onchange) { �...@override protected void onUpdate(AjaxRequestTarget target) { IValidatableString fromAddressForValidation = new IValidatableString() { private boolean isValid = true; public void error(IValidationError error) { isValid = false; } public String getValue() { return fromAddress.getValue(); } public boolean isValid() { return isValid; } }; EmailAddressValidator.getInstance() .validate(fromAddressForValidation); if (fromAddressForValidation.isValid()) { System.out.println(valid!); } else { System.out.println(not valid); } } }.setThrottleDelay(Duration.ONE_SECOND)); --- On 2009-06-30 18:15, Stefan Malmesjö wrote: The subject should have been AjaxFormComponentUpdatingBehavior... sorry about that :-[ On 2009-06-30 18:12, Stefan Malmesjö wrote: Hi, I'm playing around with validation and ajax, and can't quite seem to do what I want. The goal is to have a checkbox toggle enabled/disabled depending on whether the user has entered a valid email address. So, my simple test looks like this: -- final TextFieldString fromAddress = new TextFieldString(fromAddress); fromAddress.add(EmailAddressValidator.getInstance()); fromAddress.add(new AjaxFormComponentUpdatingBehavior(onchange) { �...@override protected void onUpdate(AjaxRequestTarget target) { if (fromAddress.isValid()) { System.out.println(valid); } else { System.out.println(not valid); } } }.setThrottleDelay(Duration.ONE_SECOND)); If the entered address is valid, then I do get the expected output valid But if it's not valid, then I get a warning message: -- WARN - WebSession - Component-targetted feedback message was left unrendered. This could be because you are missing a FeedbackPanel on the page. Message: [FeedbackMessage message = 'asd...@l' is not a valid email address., reporter = fromAddress, level = ERROR] I do have a feedbackpanel on the page (if I submit the form, then I get the asd...@l is not a valid email address output there). However, I really don't want the error message being output during the ajax process, I just want to see if it's valid, and then enable/disable the checkbox accordingly. I also tried playing with AjaxEventBehavior instead of AjaxFormComponentUpdatingBehavior, but then the value of the input field always is null, and hence valid :) I tried using fromAddress.inputChanged, but that made no difference that I could see. I'm sure I'm making some stupid mistake. Can anyone guide me in the right direction? /Stefan - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: ajaxformcomponent
Because I'm stubborn, and wanted to get the send button (and a checkbox) enabled via ajax only when the user has entered the right data in the form. The only way I seem to be able to do that is in the way below. But on the other hand I'm starting to think that might not be a good way to do things. The user gets no real good feedback as to *why* the button/checkbox is not enabled if I do it that way... /Stefan On 2009-07-01 16:55, Igor Vaynberg wrote: not sure why you are going through all that. add the validator. behavior#onupdate() will be called when validation passes and the model is updated, behavior#onerror() will be called if there is an error. -igor 2009/7/1 Stefan Malmesjös.m.mo...@gmail.com: Ok... I think I solved it, but it feels like it's an over complicated way of doing it... comments? --- final TextFieldString fromAddress = new TextFieldString(fromAddress); // fromAddress.add(EmailAddressValidator.getInstance()); fromAddress.add(new AjaxFormComponentUpdatingBehavior(onchange) { @Override protected void onUpdate(AjaxRequestTarget target) { IValidatableString fromAddressForValidation = new IValidatableString() { private boolean isValid = true; public void error(IValidationError error) { isValid = false; } public String getValue() { return fromAddress.getValue(); } public boolean isValid() { return isValid; } }; EmailAddressValidator.getInstance() .validate(fromAddressForValidation); if (fromAddressForValidation.isValid()) { System.out.println(valid!); } else { System.out.println(not valid); } } }.setThrottleDelay(Duration.ONE_SECOND)); --- On 2009-06-30 18:15, Stefan Malmesjö wrote: The subject should have been AjaxFormComponentUpdatingBehavior... sorry about that :-[ On 2009-06-30 18:12, Stefan Malmesjö wrote: Hi, I'm playing around with validation and ajax, and can't quite seem to do what I want. The goal is to have a checkbox toggle enabled/disabled depending on whether the user has entered a valid email address. So, my simple test looks like this: -- final TextFieldString fromAddress = new TextFieldString(fromAddress); fromAddress.add(EmailAddressValidator.getInstance()); fromAddress.add(new AjaxFormComponentUpdatingBehavior(onchange) { @Override protected void onUpdate(AjaxRequestTarget target) { if (fromAddress.isValid()) { System.out.println(valid); } else { System.out.println(not valid); } } }.setThrottleDelay(Duration.ONE_SECOND)); If the entered address is valid, then I do get the expected output valid But if it's not valid, then I get a warning message: -- WARN - WebSession - Component-targetted feedback message was left unrendered. This could be because you are missing a FeedbackPanel on the page. Message: [FeedbackMessage message = 'asd...@l' is not a valid email address., reporter = fromAddress, level = ERROR] I do have a feedbackpanel on the page (if I submit the form, then I get the asd...@l is not a valid email address output there). However, I really don't want the error message being output during the ajax process, I just want to see if it's valid, and then enable/disable the checkbox accordingly. I also tried playing with AjaxEventBehavior instead of AjaxFormComponentUpdatingBehavior, but then the value of the input field always is null, and hence valid :) I tried using fromAddress.inputChanged, but that made no difference that I could see. I'm sure I'm making some stupid mistake. Can anyone guide me in the right direction? /Stefan - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: ajaxformcomponent
my point was that what you want is equivalent to final TextFieldString fromAddress = new TextFieldString(fromAddress); fromAddress.add(EmailAddressValidator.getInstance()); fromAddress.add(new AjaxFormComponentUpdatingBehavior(onchange) { @Override protected void onUpdate(AjaxRequestTarget target) { System.out.println(valid!); } @Override protected void onError(AjaxRequestTarget target) { System.out.println(not valid!); } }.setThrottleDelay(Duration.ONE_SECOND)); -igor 2009/7/1 Stefan Malmesjö s.m.mo...@gmail.com: Because I'm stubborn, and wanted to get the send button (and a checkbox) enabled via ajax only when the user has entered the right data in the form. The only way I seem to be able to do that is in the way below. But on the other hand I'm starting to think that might not be a good way to do things. The user gets no real good feedback as to *why* the button/checkbox is not enabled if I do it that way... /Stefan On 2009-07-01 16:55, Igor Vaynberg wrote: not sure why you are going through all that. add the validator. behavior#onupdate() will be called when validation passes and the model is updated, behavior#onerror() will be called if there is an error. -igor 2009/7/1 Stefan Malmesjös.m.mo...@gmail.com: Ok... I think I solved it, but it feels like it's an over complicated way of doing it... comments? --- final TextFieldString fromAddress = new TextFieldString(fromAddress); // fromAddress.add(EmailAddressValidator.getInstance()); fromAddress.add(new AjaxFormComponentUpdatingBehavior(onchange) { �...@override protected void onUpdate(AjaxRequestTarget target) { IValidatableString fromAddressForValidation = new IValidatableString() { private boolean isValid = true; public void error(IValidationError error) { isValid = false; } public String getValue() { return fromAddress.getValue(); } public boolean isValid() { return isValid; } }; EmailAddressValidator.getInstance() .validate(fromAddressForValidation); if (fromAddressForValidation.isValid()) { System.out.println(valid!); } else { System.out.println(not valid); } } }.setThrottleDelay(Duration.ONE_SECOND)); --- On 2009-06-30 18:15, Stefan Malmesjö wrote: The subject should have been AjaxFormComponentUpdatingBehavior... sorry about that :-[ On 2009-06-30 18:12, Stefan Malmesjö wrote: Hi, I'm playing around with validation and ajax, and can't quite seem to do what I want. The goal is to have a checkbox toggle enabled/disabled depending on whether the user has entered a valid email address. So, my simple test looks like this: -- final TextFieldString fromAddress = new TextFieldString(fromAddress); fromAddress.add(EmailAddressValidator.getInstance()); fromAddress.add(new AjaxFormComponentUpdatingBehavior(onchange) { �...@override protected void onUpdate(AjaxRequestTarget target) { if (fromAddress.isValid()) { System.out.println(valid); } else { System.out.println(not valid); } } }.setThrottleDelay(Duration.ONE_SECOND)); If the entered address is valid, then I do get the expected output valid But if it's not valid, then I get a warning message: -- WARN - WebSession - Component-targetted feedback message was left unrendered. This could be because you are missing a FeedbackPanel on the page. Message: [FeedbackMessage message = 'asd...@l' is not a valid email address., reporter = fromAddress, level = ERROR] I do have a feedbackpanel on the page (if I submit the form, then I get the asd...@l is not a valid email address output there). However, I really don't want the error message being output during the ajax process, I just want to see if it's valid, and then enable/disable the checkbox accordingly. I also tried playing with AjaxEventBehavior instead of AjaxFormComponentUpdatingBehavior, but then the value of the input field always is null, and hence valid :) I tried using fromAddress.inputChanged, but that made no difference that I could see. I'm sure I'm making some stupid mistake. Can anyone guide me in the right direction? /Stefan - To unsubscribe, e-mail:
Re: ajaxformcomponent
Ok, thanks! /stefan On 2009-07-01 18:46, Igor Vaynberg wrote: my point was that what you want is equivalent to final TextFieldString fromAddress = new TextFieldString(fromAddress); fromAddress.add(EmailAddressValidator.getInstance()); fromAddress.add(new AjaxFormComponentUpdatingBehavior(onchange) { @Override protected void onUpdate(AjaxRequestTarget target) { System.out.println(valid!); } @Override protected void onError(AjaxRequestTarget target) { System.out.println(not valid!); } }.setThrottleDelay(Duration.ONE_SECOND)); -igor 2009/7/1 Stefan Malmesjös.m.mo...@gmail.com: Because I'm stubborn, and wanted to get the send button (and a checkbox) enabled via ajax only when the user has entered the right data in the form. The only way I seem to be able to do that is in the way below. But on the other hand I'm starting to think that might not be a good way to do things. The user gets no real good feedback as to *why* the button/checkbox is not enabled if I do it that way... /Stefan On 2009-07-01 16:55, Igor Vaynberg wrote: not sure why you are going through all that. add the validator. behavior#onupdate() will be called when validation passes and the model is updated, behavior#onerror() will be called if there is an error. -igor 2009/7/1 Stefan Malmesjös.m.mo...@gmail.com: Ok... I think I solved it, but it feels like it's an over complicated way of doing it... comments? --- final TextFieldStringfromAddress = new TextFieldString(fromAddress); // fromAddress.add(EmailAddressValidator.getInstance()); fromAddress.add(new AjaxFormComponentUpdatingBehavior(onchange) { @Override protected void onUpdate(AjaxRequestTarget target) { IValidatableStringfromAddressForValidation = new IValidatableString() { private boolean isValid = true; public void error(IValidationError error) { isValid = false; } public String getValue() { return fromAddress.getValue(); } public boolean isValid() { return isValid; } }; EmailAddressValidator.getInstance() .validate(fromAddressForValidation); if (fromAddressForValidation.isValid()) { System.out.println(valid!); } else { System.out.println(not valid); } } }.setThrottleDelay(Duration.ONE_SECOND)); --- On 2009-06-30 18:15, Stefan Malmesjö wrote: The subject should have been AjaxFormComponentUpdatingBehavior... sorry about that :-[ On 2009-06-30 18:12, Stefan Malmesjö wrote: Hi, I'm playing around with validation and ajax, and can't quite seem to do what I want. The goal is to have a checkbox toggle enabled/disabled depending on whether the user has entered a valid email address. So, my simple test looks like this: -- final TextFieldStringfromAddress = new TextFieldString(fromAddress); fromAddress.add(EmailAddressValidator.getInstance()); fromAddress.add(new AjaxFormComponentUpdatingBehavior(onchange) { @Override protected void onUpdate(AjaxRequestTarget target) { if (fromAddress.isValid()) { System.out.println(valid); } else { System.out.println(not valid); } } }.setThrottleDelay(Duration.ONE_SECOND)); If the entered address is valid, then I do get the expected output valid But if it's not valid, then I get a warning message: -- WARN - WebSession - Component-targetted feedback message was left unrendered. This could be because you are missing a FeedbackPanel on the page. Message: [FeedbackMessage message = 'asd...@l' is not a valid email address., reporter = fromAddress, level = ERROR] I do have a feedbackpanel on the page (if I submit the form, then I get the asd...@l is not a valid email address output there). However, I really don't want the error message being output during the ajax process, I just want to see if it's valid, and then enable/disable the checkbox accordingly. I also tried playing with AjaxEventBehavior instead of AjaxFormComponentUpdatingBehavior, but then the value of the input field always is null, and hence valid :) I tried using fromAddress.inputChanged, but that made no difference that I could see. I'm sure I'm making some stupid mistake. Can anyone guide me in the right direction? /Stefan
Re: ajaxformcomponent
The subject should have been AjaxFormComponentUpdatingBehavior... sorry about that :-[ On 2009-06-30 18:12, Stefan Malmesjö wrote: Hi, I'm playing around with validation and ajax, and can't quite seem to do what I want. The goal is to have a checkbox toggle enabled/disabled depending on whether the user has entered a valid email address. So, my simple test looks like this: -- final TextFieldString fromAddress = new TextFieldString(fromAddress); fromAddress.add(EmailAddressValidator.getInstance()); fromAddress.add(new AjaxFormComponentUpdatingBehavior(onchange) { @Override protected void onUpdate(AjaxRequestTarget target) { if (fromAddress.isValid()) { System.out.println(valid); } else { System.out.println(not valid); } } }.setThrottleDelay(Duration.ONE_SECOND)); If the entered address is valid, then I do get the expected output valid But if it's not valid, then I get a warning message: -- WARN - WebSession - Component-targetted feedback message was left unrendered. This could be because you are missing a FeedbackPanel on the page. Message: [FeedbackMessage message = 'asd...@l' is not a valid email address., reporter = fromAddress, level = ERROR] I do have a feedbackpanel on the page (if I submit the form, then I get the asd...@l is not a valid email address output there). However, I really don't want the error message being output during the ajax process, I just want to see if it's valid, and then enable/disable the checkbox accordingly. I also tried playing with AjaxEventBehavior instead of AjaxFormComponentUpdatingBehavior, but then the value of the input field always is null, and hence valid :) I tried using fromAddress.inputChanged, but that made no difference that I could see. I'm sure I'm making some stupid mistake. Can anyone guide me in the right direction? /Stefan