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

问题的提出: 

问题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="更改密码" οnclick="checkform()"></asp:Button> 
但是却可以用onmouseover事件 
<asp:Button ID="btChg" Runat="server" Text="更改密码" οnmοuseοver="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" οnsubmit="return checkform()"> 
不需要给button加事件 
这样2个问题就完满的解决了,困扰了我1个多小时,哎基本功阿 

核心代码如下: 

服务器端: 

<form id="form1" runat="server" οnsubmit="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 或者去掉,表单就可以提交了  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值