PDA

View Full Version : [javascript] controlli form su oggetto non selezionato


TorpedoBlu
12-01-2008, 15:26
ciao, scusate il titolo un po' vago, vi spiego:

ho un controllo su una form con questa funzione semplice
function Verif()
{
if (document.forms[0].elements[0].value == ""){
alert("controlla i dati inseriti")
document.forms[0].elements[0].focus();
return false;
}

else if (document.forms[0].elements[1].value == ""){
alert("controlla i dati inseriti")
document.forms[0].elements[1].focus();
return false;
}

else if (document.forms[0].elements[1].value.indexOf
('@',0)
== -1 || document.forms[0].elements[1].value.indexOf
('.',0)
== -1){
alert("controlla i dati inseriti")
document.forms[0].elements[1].select();
document.forms[0].elements[1].focus();
return false;
}

else if (document.forms[0].elements[2].value == ""){
alert("controlla i dati inseriti")
document.forms[0].elements[2].focus();
return false;
}

else if (document.forms[0].elements[2].value.indexOf
('@',0)
== -1 || document.forms[0].elements[2].value.indexOf
('.',0)
== -1){
alert("controlla i dati inseriti")
document.forms[0].elements[2].select();
document.forms[0].elements[2].focus();
return false;
}
else
return true;
}


il fatto è che tale controllo è applicato su una form che sta all'interno di un menu di scelta tramite una tendina... se lo vedete fate prima

qui (http://www.athenaband.com/new2/index.php?id_news=54)

c'è anche un controllo immediato oltre che quello "onsubmit" che chiaramente è più importante.

il controllo funziona nel senso che visualizza l'alert in caso di non completa compilazione del form... il fatto è che non blocca il submit e quindi dopo aver comunicato che la formnon è compilata completamente..... effettua il submit..

penso che sia dato dal fatto che la form è un quel menu, come si può fare?


PS: chiaramente i problemi me li da IE7 su Firefox tutto ok!

isAlreadyInUse
12-01-2008, 16:56
<form onsubmit="return Verif(); ">

TorpedoBlu
12-01-2008, 23:33
<form onsubmit="return Verif(); ">

ehm.. infatti nel codice ho inserito

<form onSubmit="return Verif(this.form)">

ReaToMe
12-01-2008, 23:44
http://msdn2.microsoft.com/en-us/library/ms536972(VS.85).aspx

TorpedoBlu
12-01-2008, 23:49
http://msdn2.microsoft.com/en-us/library/ms536972(VS.85).aspx

grazie, non avevo trovato questa pagina, ma non capisco, devo inserire

FORM onsubmit = "handler" ?

ReaToMe
12-01-2008, 23:56
Example

This example shows how to use onsubmit on a form to request the return value using the return function.
<BODY>
<FORM NAME="oDoSubmit" onsubmit="return(myOnSubmitEventHandler());">
</FORM>
</BODY>


Leggi tutta la pagina. :D

Nel tuo caso diventa:

<FORM onsubmit="return(Verif(this.form));">


Fondamentalmente ti mancavano due tonde.

TorpedoBlu
13-01-2008, 00:28
boh continua a non funzionare, ossia mi da l'alert ma poi mi processa lo stesso la form anche in caso non dovesse.. prova a vedere la terza opzione del menu in basso nella pagina linkata, l'opzione "invia ad un amico"


cmq su firefox funziona perfettamente

TorpedoBlu
13-01-2008, 11:39
boh non capisco se sia un'errore di IE

ReaToMe
13-01-2008, 12:03
Funziona anche su Opera...
Faccio due prove e ti faccio sapere.

TorpedoBlu
13-01-2008, 13:35
non capisco più che altro come mai la form "scrivi un commento" blocca il submit, e l'altra form invece manda solo l'alert ma non blocca il submit.... sono uguali come struttura.

TorpedoBlu
13-01-2008, 14:37
ok, funziona.

praticamente non prendeva in pasto la form data come parametro ma lavorava su form[0] in qualsiasi caso.. è bastato modificare in form[1] la funzione per la seconda form.