Se la domanda fosse stata esposta meglio si perdeva meno tempo entrambi.
A grandi linee una cosa del genere fa quello che cerchi poi va implementata.
codice:
<html>
<head>
<script language="JavaScript">
function controlla(){
var Text = document.getElementsByTagName("input")
//ciclo che conta tutti i campi input
for(i=0; i<Text.length; i++)
alert(i);
var Tendine = document.getElementsByTagName("select")
//ciclo che conta tutti i campi select
for(y=0; y<Tendine.length; y++)
alert(y);
var Texarea = document.getElementsByTagName("textarea")
//ciclo che conta tutte le textarea
for(j=0; j<Texarea.length; j++)
alert(j);
}
</script>
</head>
</body>
<form action="" method="post" name="modulo" id="modulo" onSubmit="return controlla()">
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td>Nome </td>
<td><input name="nome" type="text" id="nome"></td>
</tr>
<tr>
<td>Email</td>
<td><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td>Hobby</td>
<td><select name="hobby" id="hobby">
<option value="Seleziona" selected>Seleziona</option>
<option value="Internet">Internet</option>
<option value="Modelissimo">Modellismo</option>
<option value="Figurine">Figurine</option>
<option value="Sport">Sport</option>
</select> </td>
</tr>
<tr>
<td>Testo</td>
<td><textarea name="testo" id="testo"></textarea>
<textarea name="testo2" id="testo2"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="Submit3" value="Invia"></td>
</tr>
</table>
</form>
</html>