puoi fare in tanti modi diversi, x es.
codice:
<script type="text/javascript">
<!--
// array dei campi obbligatori
var rFld=new Array('nome','cognome');
// colore x etichetta campo compilato
var okHex='#000000';
// colore x etichetta campo non compilato
var noHex='#ff0000';
// messaggio di errore
var noMsg="blablabla rosso
I campi segnati con un asterisco (*) sono obbligatori.";


function controlla(f){
  var flag=true;
  for(var k=0;k<rFld.length;k++){
    if(f.elements[rFld[k]].value==""||f.elements[rFld[k]].value.match(/^\s+$/)){
      document.getElementById('lbl_'+rFld[k]).style.color=noHex;
      if(flag){
        with(document.getElementById('msg')){
          style.color=noHex;
          innerHTML=noMsg;
        }
        flag=false;
      }
    } else {
      document.getElementById('lbl_'+rFld[k]).style.color=okHex;
    }	
  }
  return flag;
}
//-->
</script>
...
<div id="msg">blablabla nero
I campi segnati con un asterisco (*) sono obbligatori.</div>
<form onsubmit="return controlla(this)">
<label id="lbl_nome" for="nome">Nome *</label>

<input id="nome" type="text" name="nome" />

<label id="lbl_cognome" for="cognome">Cognome *</label>

<input id="cognome" type="text" name="cognome" />

<input type="submit" value="invia" />
</form>