Salve a tutti
Sto da poco studiando i linguaggi php e js e, per esercitarmi, sto realizzando (in html) un form di contatto che in futuro vorrò inserire in un sito.
Per la funzione email ho collegato la pagina a un file php, mentre per il controllo sul corretto riempimento dei campi l'ho collegato a un secondo file in js.
Sto provando anche a inserire una checkbox per far si che l'utente dimostri di aver accettato un regolamento (sistema da utilizzare eventualmente anche per la policy sulla privacy) ma non ne riesco proprio a venirne a capo.
In particolare, vorrei che (come per i controlli per gli altri campi "nome", "cognome", etc) il checkbox apparisse non selezionato al caricamento della pagina e se non selezionato dall'utente alla fine del riempimento del modulo, apparisse l'alert specificato nello script.
Come già detto, sono un neofita, e dopo ore di info raccolte sul web, non riesco a farlo funzionare. Praticamente com'è adesso mi restituisce l'alert sia con il checbox spuntato che non.
Di seguito posto i codici html e js:
formpage in html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Form di contatto</title>
<script type="text/javascript" src="validator.js"></script>
</head>
<body>
<form action="./form.php" method="post" name="form">
<table border="1">
<tr>
<td><span>Nome</span></td>
<td><input type="text" name="Nome" size="30" value="" /></td>
<td><span>Cognome</span></td>
<td><input type="text" name="Cognome" size="30" value="" /></td>
</tr>
</table>
<table border="1">
<tr>
<td><span>Date soggiorno</span></td>
<td><span>dal</span><input type="text" name="dal" size="10" value="" /></td>
<td><span>al</span><input type="text" name="al" size="10" value="" /></td>
</tr>
</table>
<table border="1">
<tr>
<td><span>Persone</span></td>
<td>
<span>num. adulti</span>
<select name="Adulti">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
</td>
<td>
<span>num. bambini</span>
<select name="Bambini">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
</td>
</tr>
</table>
<table border="1">
<tr>
<td><span>Animali domestici</span></td>
<td>
<select name="Animali">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
</td>
</tr>
</table>
<table border="1">
<tr>
<td><span>Email</span></td>
<td><input type="text" name="Email" size="40" value="" /></td>
</tr>
</table>
<table border="1">
<tr>
<td><span>Telefono</span></td>
<td><input type="text" name="Telefono" size="40" value="" /></td>
</tr>
</table>
<table border="1">
<tr>
<td valign="top"><span>Note</span></td>
<td><textarea rows="6" name="Note" cols="50"></textarea></td>
</tr>
</table>
<table border="1">
<tr>
<td><span>Ho letto e accetto la sezione "Regolamento e Termini"</span></td>
<td><input type="checkbox" name="Regolcheck" checked="" /></td>
</tr>
</table>
<table border="1">
<tr>
<td colspan="2" valign="bottom" align="center" height="30">
<input type="submit" value="Invia" onclick="return thisform(this.form)" />
<input type="reset" value="Cancella" /></td>
</tr>
</table>
</form>
</body>
</html>
file di controllo in js (l'istruzione if per il checkbox è l'ultima):
function thisform(form) {
if(form.Nome.value == "") {
alert('Attenzione: Campo "nome" vuoto');
return false;
}
if(form.Cognome.value == "") {
alert('Attenzione: Campo "cognome" vuoto');
return false;
}
if(form.Adulti.value == "0") {
alert('Attenzione: Campo "num. adulti" vuoto');
return false;
}
if(form.Bambini.value == "0") {
alert('Attenzione: Campo "num. "bambini" vuoto');
return false;
}
if(form.Email.value == "") {
alert('Attenzione: Campo "Email" vuoto');
return false;
}else{
var mail = form.Email.value;
var regE = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*\s+<(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,3})>$|^(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,3})$/;
var result = mail.match(regE);
if(!result) {
alert('Attenzione: Formato email non valido');
return false;
}
}
if(form.Telefono.value == "") {
alert('Attenzione: Campo "Telefono" vuoto');
return false;
}
if(form.Regolcheck.checked == "") {
alert('Attenzione: Dimostrare di aver letto e accettare la sezione "Regolamento e Termini".\nSi prega di spuntare l\'apposita casella');
return false;
}
}
Grazie mille per qualsiasi aiuto
alx17