Ciao,
io non so che dire, dovresti rivedere quello che hai scritto, hai dato un nome a un campo di un id nomiCampi e pretendi di visualizzare il messaggio in un id chiamato nome?.
Anche qui hai la stessa situazione usa un solo nome per un id, hai un'array con gli indici dei name dei campi del form usalo, mi spiace ma stai scrivendo a caso, e questo non ti aiuta a imparare e/o a capire dove sbagli.
Nell'esempio che hai postato per scorrere gli indici degli array nel document.getElementById() devi mettere la variabile del ciclo for per i name dei campi del form.
Codice:
document.getElementById(''+nomiCampi[idCampo]).innerHTML ="";
Dato che ogni funzione viene richiamata quando si verifica una determinata condizione if(condizione è vera) esegue la if , se è falsa viene ignorata e si passa al controllo successivo.
Questo è un'esempio con le due funzioni: caratteriNo() e function parolaNo() inserite in un solo script con gli sessi campi e id:
Codice:
<script type="text/javascript">
function caratteriNo() {
var fx = document.forms.mioform1;
var nomeCampi = ["nome","citta","suoemail","messaggio","validator"];
for (j=0;j<nomeCampi.length;j++) {
i=nomeCampi[j];
var error = false;
if (fx[i].value.indexOf("<") != -1) {
error = true;
}
if (fx[i].value.indexOf(">") != -1) {
error = true;
}
if (fx[i].value.indexOf("\\\\") != -1) {
error = true;
}
if (error) {
fx[i].style.backgroundColor = 'red'
document.getElementById(''+[i]).innerHTML = "I caratteri < > \\\\ non sono ammessi";
fx[i].focus();
return false;
}
else {
document.getElementById(''+[i]).innerHTML = "";
}
}
return true;
}
function parolaNo(){
var modulo = document.forms.mioform1;
var parole = /\b(casa|cane|gatto|topo)\b/i;
var nomiCampi = ["nome","citta","suoemail","messaggio","validator"];
for (idCampo = 0; idCampo < nomiCampi.length; idCampo++) {
var campo = modulo.elements[nomiCampi[idCampo]];
if (parole.test(campo.value)) {
campo.style.backgroundColor = "red"
document.getElementById(''+nomiCampi[idCampo]).innerHTML = "La parola \"" + campo.value.match(parole)[0] + "\" non è ammessa";
campo.focus();
return false;
}
else {
document.getElementById(''+nomiCampi[idCampo]).innerHTML = "";
}
}
return true;
}
</script>
</head>
<body>
<form method="post" name="mioform1" action="ins.php" onsubmit="return(caratteriNo() && parolaNo())">
NOME * <input type="text" name="nome" onkeyup="caratteriNo()" /><span id="nome"></span>
<br />
CITTA *<input type="text" name="citta" onkeyup="caratteriNo()" /><span id="citta"></span>
<br />
SUOEMAIL *<input type="text" name="suoemail" onkeyup="caratteriNo()" /><span id="suoemail"></span>
<br />
MESSAGGIO *<input type="text" name="messaggio" onkeyup="caratteriNo()" /><span id="messaggio"></span>
<br />
VALIDATOR *<input type="text" name="validator" onkeyup="caratteriNo()" /><span id="validator"></span>
<br />
<button type="submit" name="send" id="submit">Invia</button>
</form>
E' buona regola scrivere codice pulito e funzionale.
Valeria.