Un pò di codice ...
Ieri pomeriggio ho perso molto tempo per capire cosa non andava su di una pagina.jsp.
Cerco di spiegare velocemente i fatti:
In questi giorni devo effettuare un restyling di alcune pagine jsp, per adattarle al layout del cliente.
Nelle vecchie pagine ho trovato una cosa del tipo:
...
<form action="..." name="nomedelform">
< ... vari elementi del form ...>
</form>
... altre cose ...
<p>
...
<input value="pulsante" onclick="document.location = ..." type="submit">
...
</p>
in pratica ho trovato un tag <input> fuori dal form, questo però non comportava malfunzionamenti.
Nell'effettuare il cambiamento del layout ho dovuto eliminare il tag <p>
L'applicazione in locale (con il nuovo layot) funziona perfettamente, ma se qualcuno la usa da remoto il pulsante fuori dal form generava malfunzionamenti strani.
Dopo tantissimi ragionamenti ho capito che la submit eseguiva l'action del form precedente...
... perciò ho fatto così:
...
<form action="..." name="nomedelform">
< ... vari elementi del form ...>
</form>
... altre cose ...
<form action="" name="newForm">
...
<input value="pulsante" onclick="document.newForm.action = ..." type="submit">
...
</form>
così tutto funziona!
Cerco di spiegare velocemente i fatti:
In questi giorni devo effettuare un restyling di alcune pagine jsp, per adattarle al layout del cliente.
Nelle vecchie pagine ho trovato una cosa del tipo:
...
<form action="..." name="nomedelform">
< ... vari elementi del form ...>
</form>
... altre cose ...
<p>
...
<input value="pulsante" onclick="document.location = ..." type="submit">
...
</p>
in pratica ho trovato un tag <input> fuori dal form, questo però non comportava malfunzionamenti.
Nell'effettuare il cambiamento del layout ho dovuto eliminare il tag <p>
L'applicazione in locale (con il nuovo layot) funziona perfettamente, ma se qualcuno la usa da remoto il pulsante fuori dal form generava malfunzionamenti strani.
Dopo tantissimi ragionamenti ho capito che la submit eseguiva l'action del form precedente...
... perciò ho fatto così:
...
<form action="..." name="nomedelform">
< ... vari elementi del form ...>
</form>
... altre cose ...
<form action="" name="newForm">
...
<input value="pulsante" onclick="document.newForm.action = ..." type="submit">
...
</form>
così tutto funziona!
4 Commenti:
Ma perche' scomodare javascript pure per un submit.
a parte che basta dare <form ...> subito dopo il body e lasciare un solo form utile...
Ma tanto non voglio andare a ravanare sul fatto che - magari - l'applicazione avvia un xmlhttprequest in AJAX o roba del genere... (-:
Pero' cio' presuppone che sul primo form ci siano ALTRI pulsanti di submit, voglio sperare... anche perche' la mancanza di almeno un input type submit dentro un form rappresenta html malformato (vale quando si usa l'elemento ISINDEX, che ormai e' pero' deprecato con la preferenza per un form get...
Ovviamente io sono stato molto vago.
Infatti nel primo Form ovviamente c'è un pulsante di sumbit e nel secondo Form (quello che ho aggiunto io) ci sono molti pulsanti per il submit che devono eseguire operazioni diverse (spiegato il javascript per la ridefinizione della action).
Questo commento è stato eliminato da un amministratore del blog.
MA CHE LINGUA E'. QUALCOSA CHE SI MANGIA ? HO SUBITO LA RICETTA.
SARA' FORSE ARAMAICO ?.
MA!
mA!
MA!
MA!
HUMM!
HUMM!
HUMM !
NON COMMENT
DICESI IDYHDHE FORM AJAX QUELL'ANIMALE CON QUELLA CODA E BE NO CON L' APROBOSCITE E NO CON LE ORECCHIE.
BASTA MI ARRENDO NON SO'
COME SIETE UMANI VOI.
PARLATE POTABILE.
Posta un commento
Io sono per la comunicazione libera senza blocchi, ma dato che comunque questo e' il mio spazio personale e personalmente non sopporto chi commenta usando un linguaggio volgare mi vedo costretto a moderare i commenti.
Abbiate pazienza.
<< Home