您的位置:首页 > Web前端 > JavaScript

关于模板页调用js的问题

2016-06-02 13:42 369 查看
首先看下面两段代码

<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="width: 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="width: 500px;" />


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

js中的$("#txtname")改为$('#<%=txtname.ClientID%>')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: