Salve non riesco a capire perchè non riesco a captare la pressione di un pulsante di un form di tipo "button" faccio l'esempio

<form method='POST' name="modulo">
Nome e Cognome
<input name='NomeCognome' type='text' size="30" ></td>
<input type="button" name="invia" value="Invia" onClick="Modulo()">

praticamente la funzione JS che si chiama modulo non fà altro che controllare se il campo nomecognome sia stato inserito o meno, dopodichè cambia la action del form facendola ricadere sullo stesso file php dove c'è il form, in basso al form ho il controllo seguente:
<?
if(isset($_POST['invia']))
{
echo "tasto invia premuto";
}

?>

ecco quello che non capisco è perchè se il pulsante "invia" è di tipo "submit" php riesce a verificare l'isset, mentre se è di tipo button la cosa non funziona? cosa cambia tra i due tipi, come posso captare se è stato premuto o meno?