asp.net Button事件中调用js问题:document.getElementById(...)为空或不是对象。请大师帮解决下

各位大师我遇到一个问题,asp.netButton事件中调用js问题:document.getElementById(...)为空或不是对象。调试过第一次点按钮触发到js... 各位大师我遇到一个问题,asp.net Button事件中调用js问题:document.getElementById(...)为空或不是对象。调试过第一次点按钮触发到js后会提示该错误,获取的对象为null,如果再点就能获取到对象。请各位帮看看
页面代码:
<asp:Button ID="btnDel" runat="server" Text="删除" CssClass="btn" OnClick="btnDel_Click" />
<div class="errInfodis" id="errInfo">
<asp:Label ID="lblmsg" runat="server" Text=""></asp:Label>
</div>

cs代码:
protected void btnDel_Click(object sender, EventArgs e)
{
string intstr = hidID.Value.ToString().Trim();
if (!string.IsNullOrEmpty(intstr))
{
//调用删除方法
}
else
{
string str = "";
str += "<script language='javascript' type='text/javascript' defer=true>";
str += "var titab=document.getElementById('errInfo');";
str += "alert(titab);";
str += "</script>";
Response.Write(str);
//调用提示信息
//showErrinfo("无可删除信息。");
}
}
展开
 我来答
嗜血的水元素
2012-11-05 · 超过12用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:28.1万
展开全部
你试试把后台输出的js代码,输出到页面的尾部,
方法:在页面类里,设置一个全局静态变量,public static a = "";//用这个变量保存哟输出到页面的js代码。
然后在页面尾部添加“<%=a%>”。这样js就输出到你的页面尾部了。

因为js代码是按照顺序执行的,你的js打码在页首浏览器会优先执行你输出的js代码。但是那个时候,你的html还没有加载完成,所以会报错。至于你说第二次加载没有报错,我就不知道什么原因了。
另外我有个QQ群:32682173,学习氛围挺浓候,欢迎来讨论。加群报我的ID。
追问

刚我试了这种方法,还是不行。现在还发现点第二次有效果后,但点完按钮之后我的页面css好像就没有起作用了

点之前

 

点之后

 

现在这个就出来两个问题了

Reyzhang
2012-11-06 · TA获得超过1111个赞
知道小有建树答主
回答量:805
采纳率:85%
帮助的人:662万
展开全部
你可以在.cs代码中给Button加个客户端的js onclick事件用来判断文本框是否为空
btnDel.Attributes.Add("onclick","CheckForm()");
在前端实现CheckForm javascript 函数
<script>
function CheckForm() {
var id=document.getElementByID("<%=hidID.ClientID%>");
if (id=="" || id.length==0) {
alert('pls check ');
return false;

}

return true;

}
</script>
在后端的btnDel_Click事件中只需要判断hidID不为空就可以
if (string.IsNullOrEmpty(this.hidID.Value)) return;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z512350286
2012-11-09
知道答主
回答量:26
采纳率:0%
帮助的人:6.2万
展开全部
建议直接获取lable
string str = "";
str += "<script language='javascript' type='text/javascript' defer=true>";
str += "var titab='<%= lblmsg.ClientID %>';";
str += "alert(titab);";
str += "</script>";
Response.Write(str);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
羊韵谕
2012-11-06
知道答主
回答量:17
采纳率:0%
帮助的人:13万
展开全部
errInfo都没有值,你获取它肯定是null啦,不知道你想要一个什么样的效果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式