[Seaside] checkbox callbacks

Alexander Lazarević laza at blobworks.com
Mon Sep 26 10:35:44 UTC 2011


#serializeThisWithHidden works nicly to update the internal state, but
I can't wrap my mind around on how to update the checkboxes.
Now the following obviously won't work but hopefully reveals my intentions:

renderContentOn: html
	html form: [
		html checkbox
			onChange: (html jQuery ajax serializeThisWithHidden);
			value: self isChecked;	
			callback: [:value | self check: value. self check2: value].
		html text: 'Check me'.
		html checkbox
			onChange: (html jQuery ajax serializeThisWithHidden);
			value: self isChecked2;	
			callback: [:value | self check2: value. self check: value not].
		html text: 'Check me 2'.
	]

So what's the best strategy to update the checkboxes reflecting the
internal state?

Alex

2011/9/26 Alexander Lazarević <laza at blobworks.com>:
> Robert and Lukas,
>
> I guess I still have some misconceptions when it comes to JS
> callbacks, but thanks for helping me along. I had the idea that the
> entire form gets serialized, but only the callbacks of changed
> elements would trigger a onChange: event and then trigger the
> callback.
>
> Alex
>
> 2011/9/24 Lukas Renggli <renggli at gmail.com>:
>> Yes, you serialize the form which means it involves both checkboxes. On your
>> scenario both callbacks should be triggered: the checked one with true, the
>> unchecked with false.
>>
>> Btw, you do not need the IDs. For the AJAX just use (html jQuery ajax
>> serializeForm). You don't want to load anything into the checkbox.
>>
>> Lukas
>>
>> On Saturday, 24 September 2011, Alexander Lazarević <laza at blobworks.com>
>> wrote:
>>> Hi!
>>>
>>> I'm using something like the following in my code:
>>>
>>> renderContentOn: html
>>>        | id |
>>>        html form: [
>>>                id := html nextId.
>>>                html checkbox
>>>                        id: id;
>>>                        onChange: (html jQuery id: id) load serializeForm;
>>>                        value: self isChecked;
>>>                        callback: [:value | value inspect].
>>>                html text: 'Check me'.
>>>                id := html nextId.
>>>                html checkbox
>>>                        id: id;
>>>                        onChange: (html jQuery id: id) load serializeForm;
>>>                        value: self isChecked2;
>>>                        callback: [:value | value inspect].
>>>                html text: 'Check me 2'.
>>>        ]
>>>
>>> I'm surprised to see that both callbacks get triggered even if I only
>>> check one checkbox. Is this on purpose and expected? According to
>>> Metacello I'm using Seaside 3.0.6
>>>
>>> Alex
>>> _______________________________________________
>>> seaside mailing list
>>> seaside at lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>
>>
>> --
>> Lukas Renggli
>> www.lukas-renggli.ch
>>
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>>
>


More information about the seaside mailing list