hay veces que un ejemplo habla mas que mil palabras
create un archivo php y le pegas esto....ahi veras el comportamiento    
Código PHP:
Ver originalFormulario 1 (cons submit)
<form name="form1" onsubmit="return enviar1()">
  <input type="text" name="t1" id="t1">
  <input type="submit" name="bf1_1" id="bf1_1" value="Enviar GET" onclick="o=0">
  <input type="submit" name="bf1_2" id="bf1_2" value="Enviar POST" onclick="o=1">
</form>
<hr>
Formulario 2 (cons button)
<form name="form2">
  <input type="text" name="t2" id="t2">
  <input type="button" name="bf2_1" id="bf2_1" value="Botón GET" onclick="enviar2(0)">
  <input type="button" name="bf2_2" id="bf2_2" value="Botón POST" onclick="enviar2(1)">
</form>
 
<script>
var o
var formulario1=document.form1;
var texto1=document.getElementById("t1");
 
var formulario2=document.form2;
var texto2=document.getElementById("t2");
 
function enviar1(){
    if(!texto1.value){
        alert("ingrese algo en el texto 1");
        return false;
    }
    if(o==0){
        formulario1.method="get";
        formulario1.action="index.php";
    }else if(o==1){
        formulario1.method="post";
        formulario1.action="index.php";
    }
}
 
function enviar2(o){
    if(!texto2.value){
        alert("ingrese algo en el texto 2");
        return false;
    }
    if(o==0){
        formulario2.method="get";
        formulario2.action="index.php";
    }else if(o==1){
        formulario2.method="post";
        formulario2.action="index.php";
    }
    formulario2.submit();
}
 
</script>
<hr />
<h1>Resultados</h1>
<?
echo "valor submit GET Formulario 1: ".htmlentities($_GET["t1"])."<br>"; echo "valor submit POST Formulario 1: ".htmlentities($_POST["t1"])."<br>"; echo "valor submit GET Formulario 2: ".htmlentities($_GET["t2"])."<br>"; echo "valor submit POST Formulario 2: ".htmlentities($_POST["t2"])."<br>";  
?>
  
salu2