Ciao ho un form con un array di campi text e una serie di dati personali con un controllo sui campi di questo tipo:
function controlla_dati(){
//-------------- controllo che sia settato almeno un campo
var c=0;
for(var i=0;i<document.richiesta.elements["qta[]"].length; i++)
{
if(document.richiesta.elements["qta[]"][i].value != "") c++;
}
if(c<1){
alert("Inserire la quantità richiesta almeno per un articolo.");
return false;
}
// -----------------------------------------------------
var val_data=document.richiesta.data.value;
var val_nome=document.richiesta.nome.value;
var val_rs=document.richiesta.rs.value;
var val_ind=document.richiesta.ind.value;
var val_city=document.richiesta.city.value;
var val_cap=document.richiesta.cap.value;
var val_tel=document.richiesta.tel.value;
var val_email=document.richiesta.email.value;
if (val_data == "")
{
alert('Attenzione non è stata specificata nessuna data di consegna.');
document.richiesta.data.focus();
return false;
}
else if (val_nome == "")
{
alert('Attenzione inserire il nome e cognome.');
document.richiesta.nome.focus();
return false;
}
else if (val_ind == "")
{
alert('Attenzione manca il tuo indirizzo.');
document.richiesta.ind.focus();
return false;
}
else if (val_cap == "")
{
alert('Attenzione manca il C.A.P.');
document.richiesta.cap.focus();
return false;
}
else if (val_city == "")
{
alert('Attenzione manca la città.');
document.richiesta.city.focus();
return false;
}
else if (val_tel == "")
{
alert('Attenzione manca il numero di telefono.');
document.richiesta.tel.focus();
return false;
}
// -------------------------------------
Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
if (Filtro.test(val_email))
return true;
else
{
alert("L'indirizzo e-mail inserito non è valido, controllare prego");
document.richiesta.email.focus();
return false;
}
// ----------------------------------------
}
Può capitare che nel modulo a volte non esista nemmeno un campo qta[] e allora il controllo salta anche tutti gli altri campi e il form può essere spedito anche vuoto.
Io vorrei che il controllo avvenisse a prescindere dall'esistenza di almeno un campo qta[], ho provato anche a fare cosi:
if(document.richiesta.elements["qta[]"].length > 0)
{
//-------------- controllo che sia settato almeno un campo
var c=0;
for(var i=0;i<document.richiesta.elements["qta[]"].length; i++)
{
if(document.richiesta.elements["qta[]"][i].value != "") c++;
}
if(c<1){
alert("Inserire la quantità richiesta almeno per un articolo.");
return false;
}
}
e poi il resto del codice....
ma non funziona, chiedo un aiuto grazie.