easy. put each section into its own form, all inside the one big form.
if a button of the inner form is pressed only that form is validated,
while values for the entire form are preserved.

there is a wiki page which explains how embedded forms work.

-igor

On Thu, Feb 25, 2010 at 4:30 PM, Tony Wu <[email protected]> wrote:
> Thanks Igor, my use case was an attempt to solve a bigger problem. Let me
> try to describe the main problem I am trying to solve:
>
> I have 1 big form with 3 distinct sections. Each section has an "update"
> link which should run every FormComponent's validators for that section. The
> trick is I can't use form submission because I don't want to validate the
> other parts of the form, just that 1 section and provide error feedback if
> necessary. The final button on the form is an actual submit, which will run
> through every FormComponent's validators on the page. I thought about
> splitting it up into 3 separate forms so each "update" link is actually a
> submit, but the final button needs to validate every input in every section
> - so that's why I'm using 1 form. I thought about nested forms as well, but
> that isn't syntactically correct in HTML.
>
> The crux of the problem is I need to run validators for only specific
> FormComponents without doing a form submit. Is there any way I can do that
> with wicket?
>
> Thanks,
> Tony
>
> On Thu, Feb 25, 2010 at 5:00 PM, Igor Vaynberg <[email protected]>wrote:
>
>> links do not transfer form values to the serverside, so you need to
>> use a bit of js to do it for you. not sure exactly what your usecase
>> is (sounds strange), but here goes off the top of my head:
>>
>> abstract class myuberlink extends link {
>>  private final textfield tf;
>>  public myuberlink(string id, textfield tf) { super(id);this.tf=tf;
>> tf.setoutputmarkupid(true);}
>>  public void oncomponenttag(tag) {
>>
>>  tag.put("onclick","this.href=this.href+'&"+tf.getinputname()+"='+document.getElementById('"+tf.getmarkupid()+"').value;
>> return true;"); }
>>
>>  public final void onclick() {
>> onclick(getrequest().getattribute(tf.getinputname()); }
>>
>>  protected abstract void onclick(string value);
>> }
>>
>> -igor
>>
>> On Thu, Feb 25, 2010 at 3:51 PM, Tony Wu <[email protected]> wrote:
>> > Is there a way to get a TextField's value without submitting the form?
>> For
>> > example, if I have a TextField and a Link (not a submit Button), I want
>> the
>> > Link's onClick to System.out.println the TextField's value at that time.
>> I
>> > tried using TextField.getInput, getConvertedInput, no dice on both.
>> >
>> > I even tried adding a AjaxFormComponentUpdatingBehavior to the TextField
>> for
>> > "onchange", which does work to change the TextField's model whenever a
>> user
>> > types something, but it's getInput and getConvertedInput is always null
>> when
>> > I click the Link. Even if the AjaxFormComponentUpdatingBehavior's
>> onUpdate I
>> > do TextField.setConvertedInput(model's new value) explicity, both
>> getInput
>> > and getConvertedInput are both null.
>> >
>> > Any ideas?
>> >
>>
>> ---------------------------------------------------------------------
>> 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]

Reply via email to