龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

用JS验证ASP.NET2.0控件表单的方法for vs2005

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
问题1. 在.NET控件的表单中,控件的id都被加上一长串的字符比如:服务器端控件为uname的TextBox控件 在服务器端代码为asp:TextBoxID="uname"runat="server"/asp:TextBox 在客户端生成的HTML代码为input
问题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> 



因为js函数中return false了所以表单不会提交,如果把它改成true 或者去掉,表单就可以提交了

引用自:http://blog.csdn.net/netfere8/archive/2008/02/12/2088696.aspx

精彩图集

赞助商链接