今天在引用了母版页的内容页中要判断用户留言的名称不能为空,如果在后台写
ClientScript.RegisterClientScriptBlock来注册提示用户,整个页面会刷白,只有前台写判断
if(document.getElementById("txtName").value == "")
   {
    alert("请填写用户名!");
    document.getElementById("txtName").focus();
    return false;
   }

上面的方法在没有引用母版页的页面中很正常,但是我在内容页中这样写,找不到txtName控件,
js会报错.就郁闷了我在网站后台程序里的一般页面(没引用母版页)里都可以,怎么现在不可以呢?折腾了半天,突然想起了查看运行后网页的源文件,这下才明白了.

txtName控件名前自动加了ctl00_ContentPlaceHolder1,也就是变成
ctl00_ContentPlaceHolder1_txtName.也就是在所有的控件前加了一个前缀,个人认为就是母版页中的
<asp:contentplaceholder );
    document.getElementById('<%=txtName.ClientID%>').focus();
    return false;
   }
取的是生成html后的客户端的ID这样就再也不会找不到啦~~~

相关文章: