Ciao a tutti,
ho una pagina generata dinamicamente, che ha un modulo dove ci possono essere da 1 a 4 campi che poi controllo con una funzione.
il campo della veariabile di tipo text prende il nome f+un numero in base a quante ce ne sono. Es se sono due ci sono f1 e f2, se sono in quattro, ci sono f1, f2, f3 e f4.
ecco come:
Codice PHP:
<form method="post" name="form1" action="modulo.php" onsubmit="return contf()">
<input type="text" name="f1">
.... di questi input text ce ne possono essere al massimo 4 ....
Codice PHP:
<input type="text" name="fn">
<input type="submit" name="subf1" value="Invia">
</form>
questa è la funzione:
function contf()
{
Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
var stringaerrore="";
var verificaris=false;
if(document.form1.f1.value)
{
var indi1 = document.form1.f1.value.replace(/^ +/, "");
indi1 = indi1.replace(/ +$/, "");
if (!Filtro.test(indi1))
{
stringaerrore += "L' indirizzo inserito nel campo 1 non è nel formato corretto \n";
verificaris = true;
}
}
if(document.form1.f2.value)
{
var indi2 = document.form1.f2.value.replace(/^ +/, "");
indi2 = indi2.replace(/ +$/, "");
if (!Filtro.test(indi2))
{
stringaerrore += "L' indirizzo inserito nel campo 2 non è nel formato corretto \n";
verificaris = true;
}
}
if(document.form1.f3.value)
{
var indi3 = document.form1.f3.value.replace(/^ +/, "");
indi3 = indi3.replace(/ +$/, "");
if (!Filtro.test(indi3))
{
stringaerrore += "L' indirizzo inserito nel campo 3 non è nel formato corretto \n";
verificaris = true;
}
}
if(document.form1.f4.value)
{
var indi4 = document.form1.f4.value.replace(/^ +/, "");
indi4 = indi4.replace(/ +$/, "");
if (!Filtro.test(indi4))
{
stringaerrore += "L' indirizzo inserito nel campo 4 non è nel formato corretto \n";
verificaris = true;
}
}
if (verificaris == true)
{
alert(stringaerrore);
return(false);
}
}
Il problema è che se ci sono tutte e quattro le variabili nel modulo, il controllo viene fatto giusto, e se sono giusti gli input invia al modulo per elaborare i dati. Se invece ce ne sono 1, 2 o tre, invia al modulo e restituisce un errore sulla pagina del form.
Sapete perchè?