I've had this happen. I think the workaround is to put the new click handler inside the json function so that the event is attached after the appropriate element is inserted.
$("#results").html(data); //this does successfully add input button
alert("Why won't this work!");
There's probably a better way to do it, but I think that's how I got mine to work.