Sto modificando un'applicazione jsp/Struts.
L'applicazione non l'ho realizzata direttamente io ma un tool
di cui parlavo tempo fa qui.
Il tool mi genera in automatico l'applicazione ma è
possibile modificarla in seguito, ad esempio modificando
codice html (quello che so fare io perché jsp
non lo conosco), ricompilandola con ant.
Quello che sto cercando di fare è
quello di avere nel form della pagina
un menù "select" che possa cambiare
il valore nei campi testo tramite javascript
in base alla scelta. Non conoscendo
più di tanto javascript e DOM mi sono
basato sull'esempio che si trova qui,
modificando in parte il codice. Infatti
non devo riempire il campo testo con
il valore della voce selezionata ma in realtà
devo diversi valori in diversi campi.
In una semplice pagina html l'operazione
mi riesce con questo codice (al momento
il javascript modifica solo un campo):
Codice: Seleziona tutto
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function selectAlbum(){
var collezioni=document.getElementById("listaAlbum");
album=collezioni.options[collezioni.selectedIndex].value;
switch(album){
case "Fwc06":
document.getElementById("nfig").value=596;
break;
case "Ue08":
document.getElementById("nfig").value=535;
break;
case "pers":
document.getElementById("nfig").value="";
break;
}
}
// End -->
</script>
</head>
<body>
<form>
<select name="listaAlbum" onchange="selectAlbum()" id="listaAlbum">
<option value="Fwc06">Fifa World Cup 2006</option>
<option value="Ue08">Uefa Euro 2008</option>
<option value="pers">Personalizza</option></select>
<input type="text" name="nfig" size="10" value="" id="nfig">
</form>)
</body>
</html>
elementi del form tramite
document.getElementById().
Il problema sorge nel file jsp con
i tag di Struts.
Per avere un menù select uguale
a quello precedente devo usare
il seguente codice (oltre a modificare
un file java)
Codice: Seleziona tutto
<html:select property="listaAlbum" onchange="selectAlbum()">
<html:option value="Fwc06">Fifa World Cup 2006</html:option>
<html:option value="Ue08">Uefa Euro 2008</html:option>
<html:option value="pers">Personalizza</html:option>
</html:select>
prevede un "id" mentre <html:option>
sì, aggiungendo styleId="..." che poi
verrà trasformato in "id" quando tradotto
in html. Ovviamente se provo a mettere
un "id" a <html:select> esce un errore
perché non è previsto nella libreria standard
dei tag di Struts e quindi non viene generata
la pagina. L'id se inserito in <html:option> non
serve a nulla nel mio caso (non ha alcun effetto).
Qualcuno sa suggerirmi una strada diversa?
Potrei anche pensare di scrivere
in normale html gli elementi del form
interessati ma così perderei la gestione
degli errori per quei campi.


