Newsgroup: it.comp.lang.javascript
Titolo: Submit condizionato

Vorrei realizzare un post condizionato, cioe':
Ho fatto un form con method = post, ho un pulsante submit con evento
onsubmit che
richiama una procedura javascript.
Nella procedura faccio dei check formali, pero' alla fine il submit mi parte
comunque.
Come faccio a far si che il submit (cioe' che venga caricata una nuova
pagina) non parta in certe condizioni e che si rimanga sulla stessa pagina?
Sono stato chiaro?
Grazie

comunque.
Credevo che onsubmit fosse solo per l'oggetto <FORM>.
Comunque io ho usato 
  <FORM ACTION=pinco onsubmit="return(laMiaProcedura(this));>
Insomma *devi* inserire un return esplicito nel codice di evento, e la
procedura di validazione deve restituire true o false.
E' documentato, ma il perché per me rimane un mistero.
Un'alternativa è usare onclick sul pulsante di submit, e fare inviare
la form dall'interno della procedura di validazione:
function laMiaProcedura(form) {
  ...
  if (questoequellaltro) form.submit()
}
--
----------------------------------------------------------------------
Marco Coletti
Network Admin, Webmaster, Tuttologo :)
PGP public key:
http://keys.pgp.com:11371/pks/lookup?op=get&exact=on&search=0x96A79061
Fingerprint: 9F E5 80 61 F6 9F 05 2D  EA 53 6F 2D 82 8B C7 C2
----------------------------------------------------------------------

comunque.
L'evento onSubmit non č del pulsante <input type="submit"> ma del modulo <form>.
Quindi:
<form name="modulo" onSubmit="return funzione()">
In "funzione( )" fai tutti i controlli che vuoi fare ed alla fine devi restiuire "true" se i dati sono validi (e in questo il form
viene inoltrato) oppure "false" se i dati sono da sistemare (in questo caso non succede niente).
function funzione()
{
    var ok=true
    // controlli sui campi.
    //Settare ok=false nel caso non sia tutto a posto
    return ok
}
---
the fly on the net
il webmaster piů alto del mondo
"the Art of JavaS." 
http://www.probo.it/aoj
"the devil inside" 
http://members.tripod.com/netfly
e-mail: 
net...@netbusiness.it

<form name="modulo" onSubmit="return funzione()">
Non funziona.  O perlomeno ci ho perso mezz'ora provando inutilmente
con IE 5 e NS 4.7.
Bisogna scrivere:
  <form name="modulo" onSubmit="return(funzione())">
Notare le parentesi in più.


con IE 5 e NS 4.7.
Funziona perfettamente. "return" non è una funzione e quindi non sevono le parentesi.
Avrai sbagliato qualcos'altro.
---
the fly on the net
il webmaster più alto del mondo


Funziona perfettamente. "return" non è una funzione e quindi non sevono le parentesi.
Lo pensavo anch'io. In effetti funziona, ma senza parentesi il submit
avviene in ogni caso.


avviene in ogni caso.


 


Io lo uso da sempre in questa maniera e funziona perfettamente... sia con 
Explorer4 che con Netscape4.


Poi non capisco il tuo discorso... se effettua l'inoltro comunque, vuol 
dire che non funziona! Non puoi dire che funziona, ma senza parentesi l'inoltro 
avviene in ogni caso... ?!?


Prova questo piccolo form sottostante, per consentire l'inoltro bisogna 
scrivere qualcosa nella casella. Come action del form Š stato specificato 
"about:blank", quindi dovrebbe aprirsi una finestra se l'inoltro ha 
successo. Se sbirci il codice sorgente return non ha parentesi...


 




 


 



Prova questo piccolo form sottostante, 
Ok, mi funziona sia con IE5 che NS4.7.
Boh, eppure su un altro PC non ne voleva sapere senza parentesi...
forse era una versione più vecchia di NS?


forse era una versione più vecchia di NS?
Può darsi, sinceramente non ho mai sentito parlare di questo bug...
:)
---
the fly on the net
