a condizioni normali, nell'invio del form trovi soltanto:
input type=submit
button type=submit

mentre non fanno nemmeno partire il post del form i controlli tipo:
input type=button
button type=button

diversamente, se a questi controlli associ una funzione sul click, e questa funzione continene un'istruzione del tipo:
Codice PHP:
document.forms[0].submit(); 
le cose cambiano


per i controlli del primo tipo dovresti mettere un return false, altrimenti l'invio della pagina avviene 2 volte:
Codice PHP:
onclick="miaSub(); return false;" 
per i controlli del secondo tipo non fa diferenza.

per entrambi i tipi di controlli comunque, i rispettivi valori non vengono inviati.