Questo è un possibile esempio. È del tutto arbitrario e gli si deve dare una controllata. Le checkbox e i campi senza name verranno ignorati.

script:

codice:
<script type="text/javascript">
function checkAll (oForm) {
	var bUnchecked, nRadId, aRadioGroup, oRadioGroups = {}, aFields = oForm.elements;
	// text, textarea, select, checkbox, submit, button.
	for (var nElId = 0; nElId < aFields.length; nElId++) {
		oField = aFields[nElId];
		if (!oField.name || oField.type === "checkbox") { continue; }
		else if (oField.type === "radio" && !oRadioGroups.hasOwnProperty(oField.name)) { oRadioGroups[oField.name] = oForm[oField.name]; }
		else if (!oField.value) { alert("Compilare il campo \"" + oField.name + "\"."); oField.focus(); return false; } 	
	}
	// radio.
	for (var sGroupName in oRadioGroups) {
		aRadioGroup = oRadioGroups[sGroupName];
		bUnchecked = true;
		for (nRadId = 0; nRadId < aRadioGroup.length; nRadId++) {
			if (aRadioGroup[nRadId].checked) { bUnchecked = false; break; }
		}
		if (bUnchecked) { alert("Scegliere un\\'opzione per il gruppo \"" + sGroupName + "\"."); aRadioGroup[0].focus(); return false; }
	}
	return true;
}
</script>
html:

codice:
<form name="myForm" onsubmit="return checkAll(this);" action="azione.php">...</form>