Newsgroup: it.comp.lang.javascript
Titolo: Action e onsubmit sono incompatibili?

problema con action e onsubmit
ciao a tutti
vorrei sapere se c'e' un modo di fare eseguire tutto lo script di
verifica di un form prima che l'action sia eseguita. Mi spiego meglio:
cosi' come lo scrivo io - onSubmit="verifica()"  action= "pag.asp" -
cliccando ok sul primo messaggio di errore che compare mi ritovo
immediatamente sulla pagina asp.
Avevo pensato di scrivere di lasciar perdere l'onsubmit e  assegnarli
l'action alla verifica e poi cambiarla da javascript in modo che
arrivi sulla pagina asp solo quando ci deve arrivare. E' possibile
farlo? C'e' qualche altro modo?
ciao
Marta

ciao
Io ho fatto:
function verifica() {
 if (va tutto bene){
   document.form1.action="test1()" && verifica1()}
 else{
 alert ("errore")
}
function verifica1()  {
 if (e' sbagliato){
 alert ("errore")
}
 else{
document.form1.action="pag.asp"
}
}
Ma non funziona. 
ciao
Marta





 wrote in message
news:3bf2c777...@news.mclink.it...

Ciao Marta, per bloccare il submit devi aggiungere dopo l'alert che segnala
l'errore 'RETURN FALSE'
e quando invochi la funzione con l'evento onSubmit devi mettere 'RETURN'
Es.
<body>
<form name="pippo" onubmit="return verifica(parametri)">
nello script invece :
if(e' sbagliato){
 alert("mess. errore")
 return false
 }
 
-- 
Posted from  [213.82.158.2] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

e quando invochi la funzione con l'evento onSubmit devi mettere 'RETURN'
Grazie Luca, ho provato a fara come hai detto ma non funziona: appare
una nuova pagina con su scritto "false". Non so più che fare
ciao
Marta

Prova a non mettere l'action del form dentro lo script ma a metterlo normalmente
all'interno del tag <form> dentro al quale devi anche scrivere l'evento
onSubmit
e nello script solo il controllo dell'errore.Io l'ho fatto molte volte e
funziona
riprova ok? 


...
Ciao
Forse hai dimenticato di chiamare il submit() nel JS.
Prova a vedere questo esempietto che ho fatto, spero che possa essere utile
al tuo caso.
Ciao
---
Riccardo
<html>
<head><title>Untitled</title></head>
<script language="JavaScript">
function verifica()
{
	if (document.form1.parametro.value == "a")
	{
		alert("errore");
	}
	else
	{
		document.form1.action="pag.asp"; 	
		//ho riscritto l'action
		document.form1.submit();
		//ho fatto il submit del form con la nuova action
	}
}
</script>
<body>
<!-- metto il javascript direttamente nell'action -->
<form name="form1" action="javascript:verifica();">
<input type="text" name="parametro">
<input type="Submit" value="Submit">
</form>
<!-- alternativa 
<form name="form1" action="#" onSubmit="verifica()">
<input type="text" name="parametro">
<input type="Submit" value="Submit">
</form>
-->
</body>
</html>

Grazie a tutti per aiuto.Io veramente ci ho rinunciato, mi stavo
esasperando: faccio la validazione del form dal lato server e la
segnalazione degli errori in un frame. Viene bene.
Ad ogni modo il codice "vero", cioe' quello con cui ho fatto le prove,
e' questo qui sotto (se vi va di vedere dove sta l'errore a me fa
comunque piacere - almeno imparo qualcosa)
function test() {
 elem = document.form1.radio1;
 for (i = 0; i < elem.length; i++) {
  if (elem[i].checked)
    break;
 }
 if (i < elem.length)
   test1()
 else
   alert("Nessun radiobutton e` selezionato");
}
function test1()
  {
var titartic = document.form1.titartic.value
var autore = document.form1.autore.value
var data = document.form1.data.value
var testata = document.form1.testata.value
var nome = document.form1.nome.value
var email = document.form1.email.value
if (( titartic == "" ) && ( autore == "" ) && ( data == "") && (
testata == "") && ( nome == "") && ( email == ""))
{
alert("Si prega di riempire tutti i campi del form \n altimenti i dati
non potranno essere inseriti")
} 
else {
document.form1.action="risposta.asp"
}
}
e poi:
<FORM name="form1" action="javascript:test()" method="post">
ciao
Marta