PDA

Visualizza la versione completa : [jsp] finestra alert


spelux
14-04-2005, 20:19
Ciao volevo sapere se era possibile fare direttamente in jsp ciò che in javascript corrisponderebbe al lancio dell' "alert".
In particolare vorrei che durante la pressione del bottone di invio dei dati del form, venga lanciata la finestrella d'errore.
Grazie :ciauz:

V1RuZ
15-04-2005, 20:36
non si può fare per un semplice motivo...jsp -> lato server e javascript -> lato client

evilsaint
16-04-2005, 00:10
si può fare se ho capito bene la domanda, ecco:


<html>
<script>
function validate(form)
{
if(form.codice.value=="")
{
window.alert("Inserire il codice dell'insegnamento");
return false;
}
if(form.crediti.value=="")
{
window.alert("Inserire i crediti");
return false;
}
if(form.anno1.value=="")
{
window.alert("Inserire l'anno accedemico");
return false;
}
if(form.anno2.value=="")
{
window.alert("Inserire l'anno accedemico");
return false;
}
return true;
}
</script>
<form method="POST" action="./confermaAggiungiEsame.jsp" onsubmit="return validate(this);">

V1RuZ
16-04-2005, 03:38
si ok questo lo sapevamo, ma le jsp centrano poco xò :D

spelux
16-04-2005, 18:25
Grazie penso che abbiate proprio colto nel segno!!!
:yuppi:

Ciaoooo :ciauz:

spelux
17-04-2005, 18:49
uffa mi dite cosa c'è che non va??


<body bgcolor="#009999">

<form name="form" method="post" onSubmit="return valida();" action="register_ok.jsp">
Nome

<input type="text" name="nome">

Nick

<input type="text" name="nick">

Password

<input type="password" name="password">

email

<input type="text" name="email">

<input type="submit" name="Submit" value="Invia">
</form>
<script type="text/javascript">
function valida() {
if(document.form.nome.value.length<4||document.form.name.value.length>20) {
alert("Il campo Nome deve essere compreso tra i 4 e i 20 caratteri");
return false;
} else if(document.form.nick.value.length<4||document.form.nick.value.length>20) {
alert("Il campo Nick deve essere compreso tra i 4 e i 20 caratteri");
return false;
} else if(document.form.password.value.length<4||document.form.password.value.length>20) {
alert("Il campo Password deve essere compreso tra i 4 e i 20 caratteri");
return false;
} else return true;
}
</script>
</body>
</html>


Il problema è che se nella casella nome c'è il numero giusto di caratteri e nelle altre caselle no, i controlli successivi vengono saltati e quindi non mi lancia la finestrella d'errore!!
Perché questo??? :dhò:

netarrow
17-04-2005, 22:33
function valida() {
if(document.form.nome.value.length<4||document.form.name.value.length>20) {
alert("Il campo Nome deve essere compreso tra i 4 e i 20 caratteri");
return false;
} else if(document.form.nick.value.length<4||document.form.nick.value.length>20) {
alert("Il campo Nick deve essere compreso tra i 4 e i 20 caratteri");
return false;
} else if(document.form.password.value.length<4||document.form.password.value.length>20) {
alert("Il campo Password deve essere compreso tra i 4 e i 20 caratteri");
return false;
} else return true;
}


questo cmq è js quindi siamo OT, cmq non sono esperto di javascript, ma penso che i concetti base li conservi, se tu hai

if(è vero) {
fai qualcosa
} else if(è vero) ecc...

dal momento il secondo if verrà fatto solo quando il primo sarà falso, se il primo if è giusto, ovvero ha la grandezza minima il testo, il secondo verrà saltato portandoti subito al return che ti fa uscire alla funzione.

Inoltre se dentro gli if metti return false, quel return ti farà uscire dalla funzione senza fare i controlli sucessivi.

Quindi prova a sostituire i return false con una var flag che all'inizio imposti a true e a false quando gli if sono veri, alla fine della funzione fai return flag, poi prova a togliere gli else.

Sennò fatti spostare

:ciauz:

Loading