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("无可删除信息。");
}
} 展开
页面代码:
<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("无可删除信息。");
}
} 展开
4个回答
展开全部
你试试把后台输出的js代码,输出到页面的尾部,
方法:在页面类里,设置一个全局静态变量,public static a = "";//用这个变量保存哟输出到页面的js代码。
然后在页面尾部添加“<%=a%>”。这样js就输出到你的页面尾部了。
因为js代码是按照顺序执行的,你的js打码在页首浏览器会优先执行你输出的js代码。但是那个时候,你的html还没有加载完成,所以会报错。至于你说第二次加载没有报错,我就不知道什么原因了。
另外我有个QQ群:32682173,学习氛围挺浓候,欢迎来讨论。加群报我的ID。
方法:在页面类里,设置一个全局静态变量,public static a = "";//用这个变量保存哟输出到页面的js代码。
然后在页面尾部添加“<%=a%>”。这样js就输出到你的页面尾部了。
因为js代码是按照顺序执行的,你的js打码在页首浏览器会优先执行你输出的js代码。但是那个时候,你的html还没有加载完成,所以会报错。至于你说第二次加载没有报错,我就不知道什么原因了。
另外我有个QQ群:32682173,学习氛围挺浓候,欢迎来讨论。加群报我的ID。
展开全部
你可以在.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;
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议直接获取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);
string str = "";
str += "<script language='javascript' type='text/javascript' defer=true>";
str += "var titab='<%= lblmsg.ClientID %>';";
str += "alert(titab);";
str += "</script>";
Response.Write(str);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
errInfo都没有值,你获取它肯定是null啦,不知道你想要一个什么样的效果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询