客戶原本使用 AS400 的系統,非常習慣輸入後按 Enter 鍵,游標會移到下一個輸入框。
這個在Windows 上是不make sense的。但不管在 WinForm,甚至是 Web Form,都有客戶這樣要求。
原因當然是:讓操作人員在新舊系統上的操作具一致性。
在 Asp.net 上要怎麼做呢?由於此行為已經是 client side 的行為了,與伺服器無器。當然需要借重 jQuery 了.
程式碼如下
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication11._Default" %> <!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"> <script src="jquery-1.2.6.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready( function() { $('input[hhh=xxx]').keydown( function() { if (event.keyCode == 13) event.keyCode = 9; if (this.value.length == this.maxLength) event.keyCode = 9; }); } ); </script> <title></title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <div> input 1:<asp:TextBox hhh="xxx" ID="TextBox1" runat="server" MaxLength="8"></asp:TextBox><br /> input 2:<asp:TextBox hhh="xxx" ID="TextBox2" runat="server"></asp:TextBox><br /> input 3:<asp:TextBox hhh="xxx" ID="TextBox3" runat="server"></asp:TextBox><br /> <asp:Button ID="Button1" runat="server" Text="Submit it" UseSubmitBehavior="false" /> </div> </form> </body> </html>
重點如下:
- function myKeyDown 將 Enter 鍵改成 Tab 鍵,另外,當 text 輸入的長度已達 maxLength 時,也強迫改成 Tab 鍵
- 當 document ready 後,將具有 hhh 屬性值為 xxx 的 input ,當 keydown 事件發生時,呼叫 myKeyDown
- 之後需要這樣行為的 text box,只需增加 hhh=’xxx’ 的 attribute 即可
1 則留言:
Hi~ 好久不見了
我是跑到PIC的前同事
上個專案也遇到了
解決方法和你一樣 user最大
下個專案會用到jquery
正在跟google大神學習 找到你這來啦
加油吧~
張貼留言