Precedente :: Successivo |
Autore |
Messaggio |
maraggos Eroe in grazia degli dei


Registrato: 05/05/06 18:30 Messaggi: 97 Residenza: Trieste
|
Inviato: 25 Mag 2007 15:39 Oggetto: Javascript in uscita da un form |
|
|
mi scuso ma sono alle prese col mio primo script. Dunque, io ho un form con dei bottoni radio. Onsubmit voglio far eseguire una routine di calcolo.
Prima di mettermi a programmare la routine, vorrei la sicurezza che i parametri da passare siano quelli corretti ma ... la mia sintassi dev'essere tutta sbagliata: mi aiutate ?
dunque, subito dopo al body ci metto il mio script:
<script type="text/javascript">
var partoda = 0;
function calcola(){
partoda = document.scegli.parto.value;
document.write(partoda);
}
</script>
poi ho il mio form:
<form name="scegli" method="post" action="" onsubmit="calcola();">
...
...
<td ><label for="radiobutton"></label>
<input name="parto" type="radio" value="1" /></td>
...
...
quando vado a fare un submit... mi dà una pagina bianca con un bel "undefined"
Grazie in anticipo a chi avrà la pazienza di rispondermi
Alberto |
|
Top |
|
 |
maraggos Eroe in grazia degli dei


Registrato: 05/05/06 18:30 Messaggi: 97 Residenza: Trieste
|
Inviato: 25 Mag 2007 16:47 Oggetto: |
|
|
... mmmm... prova e riprova, .... ho l'impressione di essere decisamente fuori strada. Una domanda:
quando si aziona il "submit", visto che alla voce "action" non c'è niente, il browser immediatamente RICARICA la pagina stessa.
E quindi mi riazzera tutto.
Ma come si fa per NON ricaricare la pagina ? Io vorrei fare apparire i risultati della mia routine nella stessa pagina !
 |
|
Top |
|
 |
maraggos Eroe in grazia degli dei


Registrato: 05/05/06 18:30 Messaggi: 97 Residenza: Trieste
|
Inviato: 25 Mag 2007 18:43 Oggetto: |
|
|
fra un po' mi sparo...
Dunque, dimenticate tutto.
Il problema è che javascript non mi riconosce il "value" del form. Mi spiego: il mio quadretto di bottoni radio restituisce un valore, e questo LO SO, perchè la pagina richiamata da "action" lo legge correttamente.
Invece la funzione document.scegli.parto.value .... mi dà risultato "undefined"
Giuro, non vi chiedo più niente ... ma per favore svelatemi l'arcano !!!!
Grazie
Alberto |
|
Top |
|
 |
kluster Dio maturo

Registrato: 15/04/06 13:14 Messaggi: 2898
|
Inviato: 25 Mag 2007 19:21 Oggetto: |
|
|
prova con
function calcola(){
partoda = document.forms[0].elements['parto'].value;
document.write(partoda);
return false;
}
e <form name="scegli" method="post" onsubmit="return calcola();">
lo scopo è che il form sia confermato a seconda di cosa ritorna la funzione calcola.
Io forzo un return false per poter scrivere il valore ma senza confermare l'invio |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 25 Mag 2007 20:14 Oggetto: |
|
|
Dato che lo scopo è validare il form per poi fare dei conti in base a quello che hai inserito, perchè vuoi ciclare?
Il seguente codice associa al click di "bottone" l'esecuzione di "calcola()" e poi butta fuori in "idOutput" il valore scelto.
<html>
<head>
<TITLE>Prova</TITLE>
</head>
<body>
<script type="text/javascript">
var partoda=0;
function calcola()
{
// recupero tutti gli oggetti "parto" del form "scegli"
var objRadios = document.forms['scegli'].elements['parto'];
// per ogni oggetto verifico se è selezionato; in questo caso salvo il valore
for (var i=0;i<objRadios.length;++i)
if (objRadios[i].checked)
{
partoda=objRadios[i].value;
break;
}
// scrivo l'ouput
document.getElementById('idOutput').innerHTML='Valore: ' + partoda;
}
</script>
<form name="scegli" method="post" action="">
<input type="radio" name="parto" value="1"/> 1<br>
<input type="radio" name="parto" value="2"/> 2<br>
<input type="radio" name="parto" value="3"/> 3<br>
<input type="radio" name="parto" value="4"/> 4<br>
<input type="button" name="bottone" value="Vai" onClick="javascript:calcola();">
</form>
<div id="idOutput"></div>
</body>
</html>
Se non ho capito il problema, scusami. |
|
Top |
|
 |
maraggos Eroe in grazia degli dei


Registrato: 05/05/06 18:30 Messaggi: 97 Residenza: Trieste
|
Inviato: 26 Mag 2007 09:00 Oggetto: |
|
|
grazie, grazie ! Mi avete svelato il mistero ! in realtà, il "value" del set di bottoni (ovvero QUALE bottone con lo stesso "name" viene azionato) viene elaborato dal server DOPO il submit ! Lato client bisogna quindi andarselo a cercare da soli !
Ho capito bene ?
Ancora grazie
Saluti
Alberto |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 26 Mag 2007 19:24 Oggetto: |
|
|
Più o meno è così.
Javascript lavora lato client percui una volta che la pagina è pronta, tu puoi agire su essa (eventualmente modificarla) con uno script.
Se tu vuoi validare un form hai 2 vie:
1) Se usi un linguaggio tipo php o asp devi far ciclare il form e avere da qualche parte nella pagina, prima della definizione del form, del codice (php, asp etc...) che elabori i valori che ti trovi in querystring (post o get). A quel punto a seconda di quello che ti trovi decidi cosa fare.
2) Tramite javascript (o vbscript) puoi accedere a tutti gli oggetti della tua pagina prima di ciclarla.
I tuoi radio hanno lo stesso nome perchè al ciclo del form vuoi solo il valore del radio selezionato ma javascript può solo "vedere" il valore di tutti i tuoi radio. Allora il mio codice non fa altro che cercare quello che ha la proprietà checked attiva e memorizza il valore.
Tramite AJAX puoi spingere all'estremo i due concetti precedenti ottenendo come risultato un sw web-based che unisce la potenza di php (o asp o simili) all'elasticità di javascript. |
|
Top |
|
 |
|