关于模板页调用js的问题

首先看下面两段代码

    <script type="text/javascript">
        $(function () {
            $("#txtname").blur(function () {
                var username = $(this).val();
                if (username != "") {
                    $.post("/handler/Validatename.ashx", { "name": username }, function (date) {
                        $("#msg").text(date)
                    });
                }
                else {
                    $("#msg").text("用户名不能为空");
                }
            });
        });
    </script>
   <asp:TextBox ID="txtname" runat="server"  style=" 500px;" class="inputtext"></asp:TextBox>

这段代码显然是异步判断用户名是否存在,但是在网页运行的时候,调试发现,JS并没有执行,但是代码并没有错误,既然js没有执行,但是js的语法并没有错误,那么说明,一定是没有取到txtname,但是显然我们的id=“txtname”为什么没有取到呢?原来是因为,我们这段代码,是用了web的母版页的,我们不妨可以运行页面,查看网页源代码

    <input name="ctl00$ContentPlaceHolder1$txtname" type="text" id="ContentPlaceHolder1_txtname" class="inputtext" style=" 500px;" />

网页把我们的代码翻译成了上述的情况了,那么我们怎么办呢?其实很简单!
因为在JS中,.ClientID是输出生成的静态页的ID,所以我们只要将代码中的

js中的$("#txtname")改为$('#<%=txtname.ClientID%>')
原文地址:https://www.cnblogs.com/guyali/p/5552755.html