关于回车触发按钮点击的问题,请帮忙!

liuvb 2009-03-23 03:13:11

我的代码如下:
为什么在第一个文本框按下回车键,可以触发'feebtn'按钮的onclick事件,在第二个文本框按下回车键,却不触发'feebtn'按钮的onclick事件,触发的是页面的另外一个按钮的(saveBtn)onclick事件,各位帮看看是怎么回事。

TextBox box=(TextBox)e.Item.FindControl("feeHowTxt");
TextBox box1=(TextBox)e.Item.FindControl("feeRemark");

if(box!=null&&box1!=null)
{
box.Attributes.Add("onkeydown","if(event.keyCode==13){document.getElementById('feebtn').click();}");

box1.Attributes.Add("onkeydown","if(event.keyCode==13){document.getElementById('feebtn').click();}");
}
...全文
267 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
longyangyxm 2009-03-23
  • 打赏
  • 举报
回复
这段代码 直接指定哪个文本框触发指定的按钮

// Configures what button to be clicked when the uses presses Enter in a
// textbox. The text box doesn't have to be a TextBox control, but it must
// be derived from either HtmlControl or WebControl, and the HTML control it
// generates should accept an 'onkeydown' attribute. The HTML generated by
// the button must support the 'Click' event
public static void TieButton(Page page, Control TextBoxToTie, Control ButtonToTie)
{
// Init jscript
string jsString = "";

// Check button type and get required jscript
if (ButtonToTie is LinkButton)
{
jsString = "if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {"
+ page.ClientScript.GetPostBackEventReference(ButtonToTie, "").Replace(":", "$") + ";return false;} else return true;";
}
else if (ButtonToTie is ImageButton)
{
jsString = "if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {"
+ page.ClientScript.GetPostBackEventReference(ButtonToTie, "").Replace(":", "$") + ";return false;} else return true;";
}
else
{
jsString = "if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {document."
+ "forms[0].elements['" + ButtonToTie.UniqueID.Replace(":", "_") + "'].click();return false;} else return true; ";
}

// Attach jscript to the onkeydown attribute - we have to cater for HtmlControl or WebControl
if (TextBoxToTie is HtmlControl)
{
((HtmlControl)TextBoxToTie).Attributes.Add("onkeydown", jsString);
}
else if (TextBoxToTie is WebControl)
{
((WebControl)TextBoxToTie).Attributes.Add("onkeydown", jsString);
}
}
wo594261 2009-03-23
  • 打赏
  • 举报
回复

if(box!=null&&box1!=null)
{
box.Attributes.Add("onkeydown","if(event.keyCode==13){event.keyCode=9;document.getElementById('feebtn').click();}");

box1.Attributes.Add("onkeydown","if(event.keyCode==13){event.keyCode=9;document.getElementById('feebtn').click();}");
}这样应该正确
zdh43526 2009-03-23
  • 打赏
  • 举报
回复
楼上的说得就对
zzxap 2009-03-23
  • 打赏
  • 举报
回复
改成这样
if(box!=null&&box1!=null)
{
box.Attributes.Add("onkeydown","if(event.keyCode==13){event.keyCode=9;document.getElementById('feebtn').click();}");

box1.Attributes.Add("onkeydown","if(event.keyCode==13){event.keyCode=9;document.getElementById('feebtn').click();}");
}
grady.lu 2009-03-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wdkaccount 的回复:]
武汉地区招聘.NET程序员,有中级证的2000-3000,高级证的3000-5000,具体视能力来定。
联系电话:02787138803
[/Quote]
武汉工资好低啊
zzxap 2009-03-23
  • 打赏
  • 举报
回复
改成这样
if(box!=null&&box1!=null)
{
box.Attributes.Add("onkeydown","if(event.keyCode==13){keyCode=9;document.getElementById('feebtn').click();}");

box1.Attributes.Add("onkeydown","if(event.keyCode==13){keyCode=9;document.getElementById('feebtn').click();}");
}
honlrlin 2009-03-23
  • 打赏
  • 举报
回复
控件的得到焦点/失去焦点的问题
shankaipingo 2009-03-23
  • 打赏
  • 举报
回复
关注,我没有发现什么问题
Jessezu 2009-03-23
  • 打赏
  • 举报
回复
调试一下看看
liuvb 2009-03-23
  • 打赏
  • 举报
回复
页面代码
<asp:datagrid id="feeSachGrid" Runat="server" HeaderStyle-HorizontalAlign="Center" AutoGenerateColumns="False"
HeaderStyle-BackColor="#D3D3D3" Width="100%" OnItemDataBound="feeschGrid_DataBind">
<Columns>
<asp:templatecolumn>
<itemtemplate>
<asp:checkbox ID="feeCheck" runat="server" /></asp:CheckBox>
</itemtemplate>
</asp:templatecolumn>
<asp:BoundColumn HeaderText="编号" DataField="feeId" />
<asp:BoundColumn HeaderText="费用名称" DataField="feeName" />
<asp:TemplateColumn>
<HeaderTemplate>
金额
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="feeHowTxt" width="60px" Runat="server" class="UnderlineInput"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<headertemplate>
费用扣点及备注
</headertemplate>
<ItemTemplate>
<asp:TextBox ID="feeRemark" width="300px" Runat="server" class="UnderlineInput"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>

<asp:button id="feebtn" style="BORDER-RIGHT: 3px; BORDER-TOP: 3px; FONT-SIZE: 12px; BACKGROUND: url(/images/btnSmartXSmall.gif); BORDER-LEFT: 3px; CURSOR: hand; PADDING-TOP: 0px; BORDER-BOTTOM: 3px; FONT-FAMILY: Tahoma"
onclick="feeLrBtn_click" runat="server" Width="51" Text="确定" Height="21"></asp:button>
caofan520 2009-03-23
  • 打赏
  • 举报
回复
页面代码贴一下

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧