【问题标题】:onkeydown not working to change focus in asponkeydown 无法改变asp中的焦点
【发布时间】:2015-01-16 16:12:18
【问题描述】:

我试图在 aspx 文件中使用 javascript 将焦点设置为另一个元素,但它设置了一会儿,然后表单重新加载并且焦点丢失,

<asp:TextBox ID="sname" runat="server"  CssClass="input" Width="280px" onkeyup="javascript:if (event.keyCode == 13) document.getElementById('fname').focus();"></asp:TextBox>

这是详细代码

<asp:TextBox ID="sname" runat="server"  CssClass="input" Width="280px" onkeyup="javascript:if (event.keyCode == 13) document.getElementById('fname').focus();"></asp:TextBox>
<asp:TextBox ID="fname" runat="server"  CssClass="input" Width="280px"></asp:TextBox>

【问题讨论】:

  • 不知道为什么整个表单会重新加载,是因为 postBack 还是什么
  • 我们能否获得更多代码,例如元素“fname”以及可能在此页面上运行的任何脚本?
  • 这个页面有PageLoad事件吗?如果是这样,单击“sname”文本框后该事件是否会被触发?
  • @MatthewJones 我没有使用任何 pageLoad 事件....这是我迄今为止在此页面上使用的唯一脚本

标签: javascript asp.net keylistener


【解决方案1】:

getElementById 方法与“fname”不匹配,因为 WebForms 更改了 asp 控件的名称。您需要将 onkeyup 调用更改为:

onkeyup="javascript:if (event.keyCode == 13) document.getElementById('<%=fname.ClientID %>').focus();"

【讨论】:

  • 是的,我确实有“fname”,不到一秒钟,焦点就集中在“fname”上,然后就丢失了
猜你喜欢
  • 2020-05-11
  • 2012-07-22
  • 2010-10-05
  • 1970-01-01
  • 2017-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多