读书人

Page.RegisterStartupScript有关问题

发布时间: 2012-01-11 22:28:46 作者: rapoo

求助:Page.RegisterStartupScript问题
主要是js的放置问题,js放在head中无错
但放在button后面出错,说无对象


Page.RegisterStartupScript后的js出现在button等控件下面,就出错了,我怀疑是js的位置问题,求能正常运行的解决方法


//////////////////
如下,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
//放在这里则无问题


</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<input id="Button1" type="button" value="button" onclick="getText()"/>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Button" />
<asp:Label ID="lblMsg" runat="server"></asp:Label></div>
<script language="javascript" type="text/javascript">
function getText()
{
if(document.all("TextBox1").value == "")
{
alert("某不能为空!");
return false;
}
else
{
var dMsg = document.all("TextBox1").value;
alert(dMsg);
return true;

}
return true;
//var dMsg = document.form1.getElementsById("TextBox1").valule;
//alert(dMsg);
}
</script>
</form>
</body>
</html>

[解决办法]
不用:Page.RegisterStartupScript
用:Response.write()

试试
[解决办法]
<asp:Button ..></asp:Button>标记都没有闭合,<asp:Button ..></asp:Button>和
<input id="Button1" type="button" value="button" onclick="getText()"> 这两种
button是有区别的,除了写法不一样,对客户端脚本的处理也有所不同。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<HTML>
<HEAD id="Head1">
<title>无标题页 </title>
</HEAD>
<BODY>
//放在这里则无问题
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br>
<input id="Button1" type="button" value="button" onclick="getText()">
<asp:Button ID="Button2" runat="server" Text="Button"></asp:Button>
<asp:Label ID="lblMsg" runat="server"></asp:Label>
</div>
<script language="javascript" type="text/javascript">
function getText()
{
if(document.all("TextBox1").value == "")
{
alert("某不能为空!");
return false;
}
else
{
var dMsg = document.all("TextBox1").value;
alert(dMsg);
return true;

}
return true;
//var dMsg = document.form1.getElementsById("TextBox1").valule;


//alert(dMsg);
}
</script>
</form>
</BODY>
</HTML>

[解决办法]
和Page.RegisterStartupScript没啥关系,事实上Page.RegisterStartupScript方法的显示效果优于Response.Write,使用Response.Write会造成背景一片空白,显得比较傻。因为浏览器还来不及解析页面上的元素。

读书人网 >asp.net

热点推荐