您的位置:首页 > 编程语言 > ASP

用JS验证ASP.NET2.0控件表单的方法(visual2005)

2008-01-13 13:11 726 查看
问题的提出:

问题1.
在.NET控件的表单中,控件的id都被加上一长串的字符比如:服务器端控件为uname的TextBox控件
在服务器端代码为<asp:TextBox ID="uname" runat="server"></asp:TextBox>
在客户端生成的HTML代码为<input name="Content$ctl00$Main$ctl00$uname" type="text" id="Content_ctl00_Main_ctl00_uname" />
如何才能获得asp控件在前台生成的控件名称?

问题2.
而在服务器端页面的提交button,这样写却不能通过编译,提示错误checkform不是“ASP.theme_blueidea_skins_addnews_ascx”的成员
<asp:Button ID="btChg" Runat="server" Text="更改密码" onclick="checkform()"></asp:Button>
但是却可以用onmouseover事件
<asp:Button ID="btChg" Runat="server" Text="更改密码" onmouseover="checkform()"></asp:Button>
可能onclick必须使用.NET的函数吧
要想用js来控制表单的提交和验证一时不知道怎么搞?

问题的解决:

问题1的解决:
对于服务器端控件<asp:TextBox ID="uname" runat="server"></asp:TextBox>
我们可以在js中这样调用document.getElementById('<%= uname.ClientID %>').value = "jaja";

问题2的解决:
在form标签中添加js事件
<form id="form1" runat="server" onsubmit="return checkform()">
不需要给button加事件
这样2个问题就完满的解决了,困扰了我1个多小时,哎基本功阿

核心代码如下:

服务器端:

<form id="form1" runat="server" onsubmit="return checkform()">
<div>
<asp:TextBox ID="uname" runat="server"></asp:TextBox>
</div>
<div>
<asp:Button ID="btChg" Runat="server" Text="提交" ></asp:Button>
</div>
<script language="javascript" type="text/javascript">
function checkform()
{
document.getElementById('<%= uname.ClientID %>').value = "jaja";
// document.all.<%= uname.UniqueID %>.value = "jaja"; //两种语句都可以实现
}
</script>
</form>

客户端生成代码:

<form name="form1" method="post" action="admin_main.aspx?skin=Addnews" id="form1">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTk3MDAyNTI4OWRkiMTE1tseK8b5jcgirHHR06UglDY=" />
<div>
<input name="Content$ctl00$Main$ctl00$uname" type="text" id="Content_ctl00_Main_ctl00_uname" />
</div>
<div>
<input type="submit" name="Content$ctl00$Main$ctl00$btChg" value="提交" id="Content_ctl00_Main_ctl00_btChg" />
</div>
<script language="javascript" type="text/javascript">
function checkform()
{
document.getElementById('Content_ctl00_Main_ctl00_uname').value = "jaja";
// document.all.Content$ctl00$Main$ctl00$uname.value = "jaja"; //两种语句都可以实现
return false;
}
</script>
</form>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: