 <p>One difference I can think of is, the way you bind HTML/ASP controls</p> <pre><code>--HTML button control-- &lt;input type = "button" id = "myButtonHTML" /&gt; --ASP button control-- &lt;asp:button runat = "server" id = "myButtonASP" /&gt; </code></pre> <p>the way you bind this in javascript will be as follows</p> <pre><code>--HTML control-- document.getElementById("#myButtonHTML").value AND --ASP control-- document.getElementById("#myButtonASP.ClientID").value </code></pre>