io userei un normale input submit in modo che isset di php rilevi il valore.

su onclick di questo input va bene la funzione che hai già: se trova errori retituisce false (quindi impedisce l'invio), altrimenti parte l'invio normalmente:

Codice PHP:
<form method='POST' action="" name="modulo"
     
Nome e Cognome 
    
<input name='NomeCognome' type='text' size="30" >
 
    <
input type="submit" name="invia" onClick="return Modulo();">VAI</button
</
form

Codice PHP:
function Modulo() 

    var 
nomecognome document.modulo.NomeCognome.value
    
document.modulo.NomeCognome.style.backgroundColor=""

    if ((
nomecognome == "") || (nomecognome == "undefined")) 
    { 
        
alert("Il campo Nome e Cognome e obbligatorio."); 
        
document.modulo.NomeCognome.focus(); 
        
document.modulo.NomeCognome.style.backgroundColor="red"
        return 
false
    } 
    else 
    { 
        
document.modulo.action "prova.php "
        return 
true;
    }