[Html-widget] Creating separate fieldsets in a form

Michael Gray mjg17 at eng.cam.ac.uk
Wed Aug 30 11:08:26 CEST 2006


On Tue, 29 Aug 2006, Bogdan Lucaciu wrote:

> I'm using trunk with the new updates, they seem to work very nice (for
> my needs anyway :) ).

Excellent!

> the fact that an id is always generated, although I rarely need an id,
> so the DOM namespace gets severly poluted with useless ids:

I'd be interested in others' opinions on this.  labels and inputs need
to rendezvous via ids (for some styles, anyway) so in that respect
automatic ids are helpful.  But they do get cumbersome.

> Whenever I add a fieldset element in the widget, it is rendered directly
> as <form> children. But if I add a non-fieldset element, a fieldset is
> automatically created to hold it (default behaviour in the earlier
> version) , but the other fieldsets don't get embedded in this automatic
> main fieldset, but go right under it. So the result is something like:
> ... 
> This is very simply corrected if I add the main fieldset manually, and
> put the other fieldsets and the submit button in it.

I would say that is the recommended way to use the 'new' non-back-compat 
HTML::Widget.

> the obvious bugfix is to render the elements in the order they were
> added (don't put the submit button on top if it was added after those
> fieldsets)

If that can be done without breaking the back compat, it would be good.

> Besides that, a DWIM behaviour (for me anyway) would be these elements
> should be syblings in the DOM Tree:
> $w->element('Fieldset');
> $w->element('Fieldset');
> $w->element('Submit');

Kind of - but I see the default fieldset as for back compat, it's better 
to specify it - or one of the other valid containers as per XHTML strict 
- explicitly.

> I don't know if it was clear enough, I can write a test if needed.

A test would be good, but no promises that back-compat, sane new 
behaviour, and this extension to implicit main fieldset, can all be 
reconciled! :-)

-- 
Michael



More information about the Html-widget mailing list