[FW] Seaside,Scriptaculous and Forms...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[FW] Seaside,Scriptaculous and Forms...

cbeler
Hi all :)

Using seaside need sometimes some prerequesites with Html... especially
with forms

- First rule I wasn't aware is that it's not possible to nest forms
which can be tempting sometimes... This is a HTML limitation which can
result in browser being confused and then in impredictable behavior.

- Second rule, all form inputs have to be inside a form tag to be
submitted to the server... Actually, it has to, because with
scriptaculous form element's generally don't need to be within a form to
submit


I had a discussion with Lukas yesterday (list down) about that last
point as I didn't know if it was good to use form inputs alone... Lukas
said yes to me and gave me some more information about forms in
scriptaculous Here are the important points of the discussion:

--------
Is it possible to use certain form elements without forms in scriptaculous ?
--------
It's possible for: text-input, password input, submit buttons, single
select lists, option buttons   (All single value submitted)
and then you have to use #triggerFormElement: to serialize the state

It's not possible for multi-selection inputs like checkboxes and
multi-select lists because #triggerFormElement: does not work for them.
The solution here is to add a form and submit the whole thing for those
elements using #triggerForm: instead

--------
Why this is not possible ?
--------
This has to do with some magic seaside is doing ;) and which is not
really compatible the way scriptaculous works.  Seaside uses additional
hidden fields for checkboxes and multi-select lists that don't get
triggered properly by scriptaculous (it only triggers the single field
you specify). The extra hidden fields are needed by seaside to evaluate
the callbacks properly to make it so conveniant.

--------
How to push something to the server without redrawing?
(direct acces to the model in the image without any validation)
--------
SUAjax
    SURequest #()
        SUEvaluator #()
    SUUpdater #('id')
        SUAutocompleter #('element')
        SUInPlaceEditor #()
        SUPeriodical #()
--------
request (SURequest)  just posts a request and submits data

... onChanged: (html request triggerForm: 'bla')

--

updater posts a request, submits data *and* updates some content (used
in SUClassBrowser to update dynamically the content of the code browser
of the scriptaculous demo)
--

evaluator is used to request and inject a javascript into the existing
page ()

--



Here it is ;)

Hope that helps other people..

Cédrick







_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [FW] Seaside,Scriptaculous and Forms...

Michel Bany
> - First rule I wasn't aware is that it's not possible to nest forms  
> which can be tempting sometimes... This is a HTML limitation which  
> can result in browser being confused and then in impredictable  
> behavior.

FWIW, package SeasideAssistants, available in squeaksource.com/
Seaside helps you with nested forms.
You can either have Seaside trigger an Error or silently ignore  
nested forms when they occur.
This package also help you detect duplicate id= attributes.

Michel.




_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside