【问题标题】:VB.net Enter KeyVB.net 输入键
【发布时间】:2010-06-11 13:16:51
【问题描述】:

我得到了以下伪代码,以获取具有焦点的表单并只允许提交我想要提交的表单:

<script> var currentForm = document.forms[0];</script>
<form ...><input onfocus="currentForm = this.form;"/></form>
<form ...><input onfocus="currentForm = this.form;"/></form>

 function globalKeyPressed(event) {
   if (event.keyCode == ENTER) { // This is pseudo-code, check how to really do it
     currentForm.submit();
   }
 }

我将如何为 VB.net 执行此操作,因为 VB.net 不接受 System.Windows.Forms.KeyPressEventArgs。我还想补充一点,我的网站上不能有多个表单,因为它会破坏登录视图。所以我的 2 个单独的“表单”实际上只是一个登录视图,然后是一个没有表单的 asp:textbox 和 asp:button。

【问题讨论】:

  • 这是winforms还是webforms?换句话说,您是在编写桌面应用程序还是 Web 应用程序?
  • ....我的网站上有多个表单...n asp:textbox 和 asp:button by....我猜是 web

标签: javascript vb.net key


【解决方案1】:

上面看起来像是在客户端完成的 javascript 函数,而不是服务器端事件。如果是这种情况,那么 VB.NET 将没有区别,因为它还将使用 Javascript 作为客户端语言。

您需要做的就是将客户端点击事件连接到您的按钮并按照您提供的方式运行代码,将其更改为(在我的脑海中)

if (event.keyCode == 13){
  //Submit form.
}

您可以通过在表单的 Page_Load 事件上使用 attributes.add 添加客户端点击,例如:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      textbox1.attributes.add("onKeyUp", "globalKeyPressed")
End Sub 

这将导致在按下键时从您的文本框中调用 globalKeyPressed() 事件。然后 globalKeyPressed() 事件将导致当前表单被提交。

【讨论】:

  • 我不明白。第二部分应该去哪里?我不断收到这些表单标签的错误。
  • @Andrew - ASP.Net webforms 只允许您拥有一个主要表单。您不能在页面上放入自己的较小表单。
  • 是的,我从没说过我做过。这就是为什么我使用了登录视图,然后只使用了一个免费的文本框和按钮。
  • 你所做的另一个问题,代码似乎无法在我的登录视图中找到文本框,因为它太远了。
  • “到目前为止”是什么意思?
【解决方案2】:

使用 ASP.Net,整个页面总是发布,通常直接返回到自身。您的 VB.Net 代码必须处理来自您放置在页面上的服务器控件的事件,例如按钮的单击事件或 LoginView 的 ViewChanged 事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 2017-07-27
    • 2012-06-18
    相关资源
    最近更新 更多