Hola,
Estoy aplicando algunos cambios esteticos a una pagina .jsp que utiliza Struts. En una de las paginas hay una iteracion que esta colocada dentro de un formulario (<s:form>). Esta iteracion genera tres elementos. Cada uno de estos elementos tienen un formulario propio (<s:form>). Ahora bien, por algun motivo que no entiendo IE lee el </s:form> del elemento generado por la iteracion como el </s:form> del <s:form> mas externo y eso hace que la iteracion termine como una ensalada.
Asi se ve el .jsp:
Código PHP:
<s:form action="login" name="rooms"> <%-- El formulario externo ---%>
<section id="left">
<s:iterator value="roomsList" status="counter">
<s:if test="#counter.count == 1 or #counter.count == 4 or #counter.count == 7 or #counter.count == 10">
<div class="themeBoxGreen">
<header>
<h6><s:property value="roomName"/></h6>
</header>
<div class="opener">
<a href="javascript:submitForm(<s:property value="roomId"/>);">
<img alt="Picture" src="showPicAction.action?avitorPath=<s:property value="roomAvitor"/>"/>
</a>
</div>
<div class="dialog" title="Rums Lösenord">
<%-- El formulario del elemento ---%>
<s:form id="User" name="User" onsubmit="return true;" action="viewRoom" method="post">
<p>
Lösenord<br />
<s:password name="password" theme="simple"/><br /><br />
Välj tip konto<br /><br />
<s:radio name="type" list="userTypes" cssStyle="margin-left: 10px; margin-right: 5px;" theme="simple"/>
</p><br />
<s:hidden name="roomId" theme="simple"/>
<s:hidden name="userId" theme="simple"/>
<s:hidden name="submit" theme="simple"/>
<s:hidden name="pass" theme="simple" value="1"/>
<s:hidden name="currentTab" value="6"/>
<div class="ui-corner-all">
<s:submit name="submit" align="center" onclick="javascript:UserSubmitForm();" type="submit" value="Login"/>
</div>
</s:form>
<%-- El formulario del elemento termina ---%>
</div>
</div>
</s:if>
</s:iterator>
</section>
<section id="middle">
<s:iterator value="roomsList" status="counter">
<s:if test="#counter.count == 2 or #counter.count == 5 or #counter.count == 8 or #counter.count == 11">
<div class="themeBoxBlue opener">
<header>
<h6><s:property value="roomName"/></h6>
</header>
<a href="javascript:submitForm(<s:property value="roomId"/>);">
<img alt="Picture" src="showPicAction.action?avitorPath=<s:property value="roomAvitor"/>"/>
</a>
</div>
<div class="dialog" title="Rums Lösenord">
<%-- El formulario del elemento ---%>
<s:form id="User" name="User" onsubmit="return true;" action="viewRoom" method="post">
<p>
Lösenord<br />
<s:password name="password" theme="simple"/><br /><br />
Välj tip konto<br />
<s:radio cssClass="brodWhite" name="type" list="userTypes" theme="simple"/>
</p><br />
<s:hidden name="roomId" theme="simple"/>
<s:hidden name="userId" theme="simple"/>
<s:hidden name="submit" theme="simple"/>
<s:hidden name="pass" theme="simple" value="1"/>
<s:hidden name="currentTab" value="6"/>
<div class="buttonLeft">
<s:submit cssClass="button" name="submit" align="center" onclick="javascript:UserSubmitForm();" type="submit" value="Login"/>
</div>
</s:form>
<%-- El formulario del elemento termina---%>
</div>
</s:if>
</s:iterator>
</section>
</s:form> <%-- El formulario externo termina ---%>
Mirando el codigo obtenido en FF o IE se ve asi:
Código PHP:
<form id="login"....>
<section id="left">
<div class="themeBoxGreen">
<header>
</header>
<div class="opener">
</div>
</div>
</section>
</form>
<section id="middle">
<div class="themeBoxBlue">
<header>
</header>
<div class="opener">
</div>
</div>
</section>
He probado quitando el <s:form> que esta dentro de la iteracion y el problema desaparece.
Como puedo solucionar este problema?
Gracias de antemano por la ayuda.