You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Martin Makundi <ma...@koodaripalvelut.com> on 2009/04/28 05:44:53 UTC

Re: Checkbox OnChangeAjaxBehavior with defaultFormProcessing=false??

Ahh, now I know. I just need to make FormSubmittingCheckBox implements
IFormSubmittingComponent and then checkBox.add(new
AjaxFormSubmitBehavior("onchange")).

Yippee!

**
Martin

2009/2/13 Timo Rantalaiho <Ti...@ri.fi>:
> On Fri, 13 Feb 2009, Martin Makundi wrote:
>> Yes, this is what I am trying to do, but disabling and enabling a
>> textfield ends up clearing its value too if I use
>> AjaxFormSumitBehavior. Don't know why.
>
> Maybe a conversion error that prohibits updating the model?
> Though in the case of validation or conversion errors the
> erroneous input could be preserved... but maybe the Ajax
> update gets it from the model anyway?
>
> 0) raw input
> 1) convert -> if succeeds, convertedInput
> 2) validate -> if succeeds, model
>
> Do you have a feedback panel on the page?
>
> By debugging Form.process() you can probably see easily
> what's going on.
>
>> I feel it is more consistent to use just plain Wicket.
>
> In a way, yes, but sometimes purely client-side stuff can be
> easier purely on the client-side.
>
> Best wishes,
> Timo
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Checkbox OnChangeAjaxBehavior with defaultFormProcessing=false??

Posted by Martin Makundi <ma...@koodaripalvelut.com>.
Actually one must hack even further to reject the "submitButton=1"
value being added at form submit javascript:

  /**
   * wicket-ajax:
   *
   * if (submitButton != null) {
   *   s += Wicket.Form.encode(submitButton) + "=1";
   * }
   *
   * @see org.apache.wicket.markup.html.form.FormComponent#getInputAsArray()
   */
  @Override
  public String[] getInputAsArray() {
    List<String> strings = Arrays.asList(super.getInputAsArray());
    strings.remove("1");
    return strings.toArray(new String[strings.size()]);
  }

  /**
   * @see org.apache.wicket.markup.html.form.AbstractSingleSelectChoice#getModelValue()
   */
  @Override
  public String getModelValue() {
    String value = super.getModelValue();
    if ("1".equals(value)) {
      throw new IllegalStateException("1 not supported because of
javaScript wicket-ajax:submitForm: function(form, submitButton)");
    }
    return value;
  }


Is there a feature request that would allow a normal component to
implement IFormSubmittingComponent without adding the =1 code?
wicket-ajax:
	// Submits a form using ajax.
	// This method serializes a form and sends it as POST body.
	submitForm: function(form, submitButton) {
	    var body = function() {
	    	var s = Wicket.Form.serialize(form);
	    	if (submitButton != null) {
		        s += Wicket.Form.encode(submitButton) + "=1";
		    }
		    return s;		
	    }
	    return this.request.post(body);
	},

**
Martin

2009/4/28 Martin Makundi <ma...@koodaripalvelut.com>:
> Ahh, now I know. I just need to make FormSubmittingCheckBox implements
> IFormSubmittingComponent and then checkBox.add(new
> AjaxFormSubmitBehavior("onchange")).
>
> Yippee!
>
> **
> Martin
>
> 2009/2/13 Timo Rantalaiho <Ti...@ri.fi>:
>> On Fri, 13 Feb 2009, Martin Makundi wrote:
>>> Yes, this is what I am trying to do, but disabling and enabling a
>>> textfield ends up clearing its value too if I use
>>> AjaxFormSumitBehavior. Don't know why.
>>
>> Maybe a conversion error that prohibits updating the model?
>> Though in the case of validation or conversion errors the
>> erroneous input could be preserved... but maybe the Ajax
>> update gets it from the model anyway?
>>
>> 0) raw input
>> 1) convert -> if succeeds, convertedInput
>> 2) validate -> if succeeds, model
>>
>> Do you have a feedback panel on the page?
>>
>> By debugging Form.process() you can probably see easily
>> what's going on.
>>
>>> I feel it is more consistent to use just plain Wicket.
>>
>> In a way, yes, but sometimes purely client-side stuff can be
>> easier purely on the client-side.
>>
>> Best wishes,
>> Timo
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org