Allora,
dopo aver abbondantemente ricercato e provato ne è venuto fuori questo:
codice:
<html>
<head>
<script>
function controlla(campo, errore)
{
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";
return false;
}
if(!ricerca.match(/^\d+([\.]\d*)?$/))
{
el.style.display = "block";
el.innerHTML="errore: hai inserito caratteri vietati,sono ammesse solo cifre ed il punto!";
return false;
}
return true;
}
</script>
</head>
<body>
<form name="MyForm" ACTION="http://localhost/cgi-bin/xxx.cgi" method="POST">
<input type="text" name="mytext" id="mytext" onBlur="return controlla('mytext', 'errore1');">
<font color="red" size="1"><div id="errore1" style="display: none;">
</div></font>
<input type="text" name="mytext2" id="mytext2" onBlur="return controlla('mytext2', 'errore2');">
<font color="red" size="1"><div id="errore2" style="display: none;">
</div></font>
<input type="SUBMIT" VALUE="Calculate">
<input type="reset" value="Reset">
</form>
</body>
</html>
Ci sono quasi, ma quello che proprio non riesco a fare è evitare che, nel caso di scrittura di un error message, il layout della pagina "cambi": di fatto il messaggio viene scritto nello spazio bianco che ho lasciato tra i campi, ma mi "spinge" comunque verso il basso tutto il restante contenuto della pagina; in pratica inserisce una riga bianca di troppo...
Ho anche provato a sostituire il tag <div> con il tag <span> ma il risultato è il medesimo...
Suggerimenti in merito...?
Ciao, grazie