Problems with on() method

Problems with on() method

Hello, ppl

i'm writing a simple INSERT/ALTER code using ajax and jquery .
When i choose a name on my select, a change function starts, then a post method call a new div with a form and data of the selected one.

After that, a new button appears... a alter button...
But i can't use it, because he isn't on DOM yet... i tried on(), like i've done once with live()... but doesnt work.

<!-- jquery script >

$("#consulta").on("change", function(){

var cadastro_id = $("#consulta").val();
$.post("cons.php", {cadastro_id: cadastro_id}, function(data){
$("#result_select").html(data);
}, 'html')
})

$("#alterar").click(function(){
alert("teste");
})

<!--  html code called from my php code >

 <div id="result_select">
 <p>Nome</p>
 <input type="text" name="nome" id="nome_alter" value="<?php echo $row['nome']?>" />
 <br />
 <p>E-mail</p>
 <input type="text" name="email" id="email_alter" value="<?php echo $row['email']?>" />
 <br />
 <input type="button" id="alterar" value="Alterar" />
 </div>


can someone help?
I dont understand why on() doesnt refresh the DOM.

thank you :D