<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl1.ascx.cs" Inherits="默认按钮方法_WebUserControl1" %>
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<br>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl2.ascx.cs" Inherits="默认按钮方法_WebUserControl2" %>
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<br>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div><%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserContro3.ascx.cs" Inherits="默认按钮方法_WebUserContro3" %><div id="<%= this.ID %>">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<br>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
<script type="text/javascript">
var inputs = document.getElementById('<%= this.ID %>').getElementsByTagName("input");
for(i=0;i<inputs.length;i++)
{
inputs[i].onkeyup = function(){if(event.keyCode==13){document.getElementById('<%= Button1.ClientID %>').click();} }
}
</script>以上是我想实现在哪个用户控件里面点回车的时候指定哪个按钮提交的
但是这里当按下回车的时候inputs[i].onkeyup 好像不执行 直接提交了页面的默认按钮了大家看看要怎么改谢谢
解决方案 »
- 十万火急:想做出如下图所示的效果,忘诸位仁兄进来指点一二!急!急!急!急!
- 如何在linux下发布.net 2.0网站
- 有用过通达oa的吗??
- listView问题
- 加载页面的时候为什么数据没有显示出来?
- 使用SmtpMail发送邮件,邮件主体是html格式的,内嵌图片遇到的问题,谢谢!
- 联动菜单实现了,但是无法得到他的值。大家帮忙看看。
- 水晶报表10企业版差三个文件,有的帮帮忙!
- odp.net 连接到oracle: “Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常。
- 如果用XML做为数据库的网站安全吗?XML文件可以做进DLL吗?
- 常用的repeat
- IIS中的一个程序运行时产生多个w3wp进程是怎么回事?
function document.onkeydown()
{
var e=event.srcElement;
if(event.keyCode==13)
{
document.getElementById('<%= Button1.ClientID %>.click();
}这样也不行么
DisableAutoPost = function()
{
if(window.event.keyCode == 13){
window.event.keyCode = 0;
//Todo:your function
}
}就是首先要禁止系统默认的回车提交
然后再判断自己提交
这个用在onkeydown
那atdream你的这条放在什么地方呢
我放在页面中好像没有反应谢谢
<head><title>
无标题页
</title></head>
<body>
<form name="form1" method="post" action="Default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJOTk1MzI0NzcxZGT+rcTOwQg1cpmXja466XBuPF0Ixg==" />
</div> <div>
</div>
<div>
<input name="WebUserControl21$TextBox1" type="text" id="WebUserControl21_TextBox1" />
<br>
<input name="WebUserControl21$TextBox2" type="text" id="WebUserControl21_TextBox2" />
<br>
<input name="WebUserControl21$TextBox3" type="text" id="WebUserControl21_TextBox3" />
<br>
<input type="submit" name="WebUserControl21$Button1" value="Button" id="WebUserControl21_Button1" />
</div>
<div>
<input name="WebUserControl31$TextBox1" type="text" id="WebUserControl31_TextBox1" />
<br>
<input name="WebUserControl31$TextBox2" type="text" id="WebUserControl31_TextBox2" />
<br>
<input name="WebUserControl31$TextBox3" type="text" id="WebUserControl31_TextBox3" />
<br>
<input type="submit" name="WebUserControl31$Button1" value="Button" id="WebUserControl31_Button1" />
</div> <div id="WebUserControl1">
<input name="WebUserControl1$TextBox1" type="text" value="d" id="WebUserControl1_TextBox1" />
<br>
<input name="WebUserControl1$TextBox2" type="text" value="ddd" id="WebUserControl1_TextBox2" />
<br>
<input name="WebUserControl1$TextBox3" type="text" value="dkdfd" id="WebUserControl1_TextBox3" />
<br>
<input type="submit" name="WebUserControl1$Button1" value="Button" id="WebUserControl1_Button1" />
</div> <script type="text/javascript">
var inputs = document.getElementById('WebUserControl1').getElementsByTagName("input");
for(i=0;i<inputs.length;i++)
{
inputs[i].onkeydown = function(){if(event.keyCode==13){document.getElementById('WebUserControl1_Button1').click();} }
}
DisableAutoPost = function()
{
if(window.event.keyCode == 13)
{
window.event.keyCode = 0;
}
} </script>
<div> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWDQKWxsuqBALJqe7/CgLKqe7/CgLLqe7/CgK4gYasCgK49MjuCwK59MjuCwK69MjuCwLd6MmJBQLAuvGfDwLAuq2xCQLAuplWAoyB4/QJM94w5otFt+24M8pkWU1z3Yt2Vmc=" />
</div></form>
</body>
</html>
而不是页面的默认按钮的事件谢谢
var inputs = document.getElementsByTagName("input");
for(i=0;i<inputs.length;i++)
{
debugger
if(inputs[i].id.indexOf('<%=this.ClientID %>')!=-1)
{
inputs[i].onkeyup = enter;
}
}
function enter(){
if(event.keyCode==13)
{
document.getElementById("<%=Button1.ClientID %>").click();
}
}
</script>
把这段脚本写在你的控件内应该就行了. JScript code
<script type="text/javascript">
var inputs = document.getElementsByTagName("input");
for(i=0;i<inputs.length;i++)
{
debugger
if(inputs[i].id.indexOf('<%=this.ClientID %>')!=-1)
{
inputs[i].onkeyup = enter;
}
}
function enter(){
if(event.keyCode==13)
{
document.getElementById("<%=Button1.ClientID %>").click();
}
}
</script>
------------------------------
问题就是他不会执行event.keycode==13就直接提交 了RE:
我测试了,你的代码是对的 但是,他在模拟单击了你规定的按钮后还是会去单击默认的按钮 所以你要做的只是 禁止系统默认的回车提交
------------------------------
我也知道他执行了默认按钮,但要怎么来禁止呢谢谢
=======
怎么可能不执行?你按别的键是不会提交的.我都测过了.
问题就是他不会执行event.keycode==13就直接提交 了
=======
怎么可能不执行? 你按别的键是不会提交的.我都测过了.
----------------------------------------------
能不能把HTML发过来看看谢谢
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<div style="display:none">
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div><script type="text/javascript">
var inputs = document.getElementsByTagName("input");
for(i=0;i<inputs.length;i++)
{
debugger
if(inputs[i].id.indexOf('<%=this.ClientID %>')!=-1)
{
inputs[i].onkeyup = enter;
}
}
function enter(){
debugger
if(event.keyCode==13)
{
alert('d');
document.getElementById("<%=Button1.ClientID %>").click();
}
}
</script>我略了一个问题..当你在textbox上按回车的时候可能默认会是那一个button,
所以页面postback了.
我的用户控件是把那个button给style.display=none了.所以没有这个问题.我帖出代码你看一下
<%@ Register Src="WebUserControl.ascx" TagName="WebUserControl" TagPrefix="uc1" %><!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>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<uc1:WebUserControl id="WebUserControl1" runat="server">
</uc1:WebUserControl>
</form>
</body>
</html>
<head><title>
Untitled Page
</title></head>
<body>
<form name="form1" method="post" action="Default14.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTMwMjA1NjQwNGRkREmxoa7FwIMJQA9vB6NCneIIYsc=" />
</div><div> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBALW6OrODALAuvGfDwLAuq2xCQKMgeP0CaXGzL/G7OkZ7A/W9ZXkdI1mGms7" />
</div>
<input name="WebUserControl1$TextBox1" type="text" id="WebUserControl1_TextBox1" /><br />
<input name="WebUserControl1$TextBox2" type="text" id="WebUserControl1_TextBox2" />
<div style="display:none">
<input type="submit" name="WebUserControl1$Button1" value="Button" id="WebUserControl1_Button1" />
</div><script type="text/javascript">
var inputs = document.getElementsByTagName("input");
for(i=0;i<inputs.length;i++)
{
debugger
if(inputs[i].id.indexOf('WebUserControl1')!=-1)
{
inputs[i].onkeyup = enter;
}
}
function enter(){
debugger
if(event.keyCode==13)
{
alert('d');
document.getElementById("WebUserControl1_Button1").click();
}
}
</script>
</form>
</body>
</html>
-------------
你忽略了几个问题
首先你这个是一个用户控件
而我的是N个用户控件
而且用户控件里面可能有N个按钮
再者按钮是不是级Display=none掉的我先试试谢谢
但是在
FireFox里面就不行了
几个用户控件无所谓吧.因为你是
document.getElementById("<%=Button1.ClientID %>").click();
if(inputs[i].id.indexOf('<%=this.ClientID %>')!=-1)最后生成的元素都会加一个控件的前缀的.所以应该不受影响
就如你生成后的就是document.getElementById("WebUserControl1_Button1").click();这样的你的不执行event.keyCode==13可能是因为回车默认就是ie上的那个按钮.所以他提交了.没有执行脚本.如果把按钮display=none的话.肯定就不是默认的了.所以可以执行.