Here's some example code (wicket 1.3.x):
Java:
private class TestForm extends Form {
private String always;
private boolean useOptional = false;
private String optional;
public TestForm(String id) {
super(id);
add( new TextField("always", new PropertyModel(this,
"always")).setRequired(true) );
final CheckBox useOptionalCheck = new CheckBox( "useOptional", new
PropertyModel(this, "useOptional") );
add( useOptionalCheck );
add( new TextField("optional", new PropertyModel(this, "optional")) {
@Override
public boolean isRequired() {
return ((Boolean)useOptionalCheck.getConvertedInput()).booleanValue();
}
}.add(MinimumLengthValidator.minimumLength(3)) );
}
}
Markup:
<form wicket:id="testForm">
<input wicket:id="always" type="text" />
<input wicket:id="useOptional" type="checkbox" />
<input wicket:id="optional" type="text" />
<input type="submit" />
</form>
How can I express that I want the optional text field to only be used when the
checkbox is selected?
----- Original Message -----
From: "Igor Vaynberg" <[email protected]>
To: [email protected]
Sent: Wednesday, 2 June, 2010 4:00:57 PM
Subject: Re: Show/hide form components best practice
if the form contains all the state then the answer is simple: write a
bit of javascript that does it for you.
-igor
On Wed, Jun 2, 2010 at 2:53 AM, Iain Reddick
<[email protected]> wrote:
> That's just a server round-trip on client-side state changem, which is
> basically (1) in my initial list.
>
> Basically, this type of form behaviour is very common and the question
> of how to implement it with Wicket has been raised by every developer
> I know
> who has worked with the framework.
>
> I know that Wicket generally works best when you round-trip
> client-side state changes to the server, but I think that in this
> situation it is silly,
> as the submitted form contains all the required state.
>
> Jeremy Thomerson wrote:
>>
>> return true from wantOnSelectionChangedNotifications and put your
>> visibility changing code in onSelectionChanged
>>
>>
>> <http://wicket.apache.org/docs/1.4/org/apache/wicket/markup/html/form/CheckGroup.html#wantOnSelectionChangedNotifications()>
>>
>> http://wicket.apache.org/docs/1.4/org/apache/wicket/markup/html/form/CheckGroup.html#wantOnSelectionChangedNotifications()
>>
>> On Tue, Jun 1, 2010 at 5:37 AM, Iain Reddick
>> <[email protected]>wrote:
>>
>>
>>>
>>> Say I have a form with a check box that, when checked, shows some
>>> other field (i.e. it controls the visibility of other form
>>> components).
>>>
>>> What is the best approach to handling this?
>>>
>>> From what I understand, you have 3 options:
>>>
>>> 1. Add ajax behaviour to the check box (re-render relevant
>>> components). 2. Add javascript from the Java code (e.g. add some
>>> kind of show/hide
>>> behaviour). 3. Add javascript directly to the HTML.
>>>
>>> What are peoples experiences of the 3 methods, and which is best?
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>>
>>
>>
>>
>
>
--------------------------------------------------------------------- To
unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]