问题的提出:
问题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>
问题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>