protected void btnNext_Click(object sender, EventArgs e)
{
btnNext.InnerHtml = \"CLICK\";
}
The reason you're seeing this is because when you have both on a button it runs your on click handler followed by the __doPostBack function so the onclick would look something like this
onclick="return checkForm(); __doPostBack('btnNext','')
So as you can see the __doPostBack, which actually sets up which server function to call, is never called. However, since the button is of type submit, the form is still sent back to the server.