<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=US-ASCII">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2657.73">
<TITLE>[Seaside] Nested form tags</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>I came accross some weird situation when using a component that is</FONT>
<BR><FONT SIZE=2>a composition of other components. A subcomponent may in turn</FONT>
<BR><FONT SIZE=2>be a composition of some more components. To make things even more</FONT>
<BR><FONT SIZE=2>complex, some deeply nested subcomponents may call some other component.</FONT>
</P>

<P><FONT SIZE=2>Some of the subcomponents may contain some input html tag and as such</FONT>
<BR><FONT SIZE=2>will require to be contained in a form html tag. In such a complex</FONT>
<BR><FONT SIZE=2>construct it may be difficult to decide exactly what component should</FONT>
<BR><FONT SIZE=2>have the responsibility to generate the form tag. Also, it happened</FONT>
<BR><FONT SIZE=2>frequently to me that form tags become nested especially when a subcomponent</FONT>
<BR><FONT SIZE=2>calls another component that happens to be a dialog.</FONT>
</P>

<P><FONT SIZE=2>Therefore I am making the following suggestion : Seaside should prevent</FONT>
<BR><FONT SIZE=2>form tags from being nested. It should discard any form tag that occurs</FONT>
<BR><FONT SIZE=2>within a previously opened form tag.</FONT>
</P>

<P><FONT SIZE=2>With this in place, I can design a component that needs a form with a form</FONT>
<BR><FONT SIZE=2>construct knowing that if my component happens to be used inside a form, then my</FONT>
<BR><FONT SIZE=2>form construct will be discarded. Otherwise my form construct will be</FONT>
<BR><FONT SIZE=2>preserved. If my component calls a dialog component, the form generated by</FONT>
<BR><FONT SIZE=2>the dialog component will be discarded if my component happens to be used</FONT>
<BR><FONT SIZE=2>from inside a form.</FONT>
</P>

<P><FONT SIZE=2>Michel.</FONT>
</P>

</BODY>
</HTML>