Newsgroup: it.comp.lang.javascript
Titolo: form & js

Salve a tutti,
ho questo pezzetto di codice che mi da' un po' di noie:
<form action="javascript:void(0);" onSubmit="GoTo(City(this.sel));">
  <select size="1" name="sel">
    <option selected value="NULL">-- {2} --</option>
    {3}
  </select>&nbsp;&nbsp;<input type="image" src="img.gif" style="border:
0px;" alt="search" align="bottom">
</form>
Non badate alla roba tra le graffe che serve per un template. Cmq lo schema
generale e' quello sopra riportato. La cosa da premettere e' che non devo
inviare nulla a nessuno script server-side. In questo caso va benissimo
tutto client-side. La funzione City restituisce una pagina da chiamare in
base all'opzione selezionata dall'utente. La funziona GoTo va all'url
desiderata. Ora c'e' un modo per far si che quando l'utente spinge il
bottoncino viene reindirizzato sulla pagina da lui scelta? Nei campi value
non c'e' il nome della pagina, ma un altro valore. E' la funzione City che
restituisce l'url corretto. Ovviamente com'e' scritto ora non funziona,
perche' alla fine processa sempre quello che c'e' nel campo action.
Grazie x l'aiuto.


 Be, nella funzione City() setti l'action della form, non l'ho mai provato ma
dovrebbe andare
 tuaForm.action = sURL; // il tuo URL
Ciao
--------------------------------
Inviato via 
http://usenet.libero.it

Dunque...la funzione City restituisce un url...ma la funzione GoTo cosa fa?
Basterebbe un window.location.href=tuourl; oppure, se vuoi usare la form
(mettici un method=post) puoi, come dice nk6310i, assegnare l'action e far
eseguire il submit() della form...
Se hai problemi posta la tua function GoTo

...

credo che una funzione di questo tipo sia meglio associarla
all'onChange del tag select, senza intromettere il form.
ciao

 Se hai problemi posta la tua function GoTo
La GoTo e' quella "classica":
function GoTo(url) {
 location.href = url;
 return void 0;
}
niente di piu'....
Adesso provo la soluzione di nk6310i e poi posto il responso :)
Ciao!

 ciao
a me serve che l'utente prema il bottoncino accanto alla select. inoltre
l'onChange richiede piu' codice per fare una cosetta fatta bene per vari
motivi sui quali non mi dilungo, cmq grazie per il suggerimento.
Ciao!

 Ciao
diciamo che funziona con riserva :(. Cioe' alla pagina desiderata ci va
effettivamente, ma continua a passargli quella stringa maledetta! In realta'
una soluzione pulita al problema c'e', pero' mi sfasa terribilmente tutto il
layout. Basta mettere il bottoncino fuori dal form e con un onClick fare
riferimento alla select del form stesso, per poi passarla a City il cui
risultato va a GoTo. In sintesi il trucco e' stare fuori dal form. Pero' mi
incasina... :(
Ciao!

  return void 0;
return false; //per non far eseguire il submit

> la form in onsubmit non inizia con "return", ora...
Eggià...onsubmit='return etc etc'


Ma di quale "stringa maledetta" parli?


Anche io me lo sono chiesto; poi, pensandoci, ho pensato che intendesse che
viene passato il valore del select, e lui non lo vuole => non può usare il
submit della form (oppure può togliere il name al select, ma poi come fa a
scatenare l'evento visto che non vuole/può usare onchange o similari?)


ha scritto:

Aaaah be è normale è nella form!!! Cmq può semplicemente ignorarlo, oppure
se non deve passare parametri ma solo andare su un'altra pagina può usare il
window.location semplicemente sull'onclick() del bottone.
Insomma se deve solamente cambiare pagina senza passare parametri ci sono
varie soluzioni.
Spettiamo la risposta ( se ci sarà )
Ciaoooo


> Ma di quale "stringa maledetta" parli?
Di quella che explorer pensa bene di mandargli via GET. Cmq ho risolto.
Bastava un renturn false; nel posto giusto per eliminare ogni problema...
Grazie