si', ma il problema di questo forum e' che ogni tanto aggiunge dei caratteri che non ci sono... in particolare spezza la parola javascript in java-script...
un altro errore 'logico' e' che alla fine non viene mai dato l'errore sul campo vuoto. Perche' i due if di verifica (campo vuoto oppure caratteri non numerici) vengono sempre eseguiti entrambi e il secondo sovrascrive il primo.
di seguito un codice 'funzionate' (le virgolette sono d'obbligo... non si e' mai sicuri di niente)
codice:
<html>
<head>
<script>
function invia()
{
ok = controlla_tutto();
if (ok)
document.MyForm.submit();
}
function controlla_tutto()
{
ok = controlla('mytext', 'errore1') & controlla('mytext2', 'errore2');
// attento una sola '&' altrimenti non valuta il secondo controllo!!!
return ok;
}
function controlla(campo, errore)
{
corretto = true;
var ricerca = document.getElementById(campo).value;
var el = document.getElementById(errore);
if(ricerca=="")
{
el.style.display = "block";
el.innerHTML="errore: hai inserito il campo vuoto";
corretto = false;
}
else if(!ricerca.match(/^\d+([\.]\d*)?$/))
{
el.style.display = "block";
el.innerHTML="errore: hai inserito caratteri vietati,sono ammesse solo cifre ed il punto!";
corretto = false;
}
if(corretto)
el.innerHTML="";
return corretto;
}
</script>
</head>
<body>
<form name="MyForm" ACTION="http://localhost/cgi-bin/xxx.cgi" method="POST" onsubmit="return submit();">
<input type="text" name="mytext" id="mytext" onBlur="controlla_tutto();">
<font color="red" size="1"><div id="errore1" style="height: 10px;"> </div></font>
<input type="text" name="mytext2" id="mytext2" onBlur="controlla_tutto();">
<font color="red" size="1"><div id="errore2" style="height: 10px;"> </div></font>
<input type="button" VALUE="verifica campi (senza inviare)" onClick="controlla_tutto();" >
<input type="button" name="INVIA" value="INVIA" onClick="javascript:invia()">
<input type="reset" name="reset" value="Reset">
</form>
</body>
</html>