javascript用斷行符號鍵實現Tab鍵功能

來源:互聯網
上載者:User
 很多羅嗦的客戶,喜歡提出這些需求!其實實現也不難!代碼如下:

我前段時間看了MS的ASP.NET講座,在裡面談到了如何讓"斷行符號鍵"使文字框的焦點一個個下移.其中提了三種方法,最好的一種是這樣的:

 用用戶端指令碼在頁面添加document的onkeydown事件,讓頁面在接受到斷行符號事件後,進行Tab鍵的功能,即只要把event的keyCode由13變為9

 VBScript代碼:

 <script language="vbscript">

 sub document_onkeydown

    if event.keyCode=13 then

      event.keyCode=9

   end if

 end sub

</script>

Javascript代碼如下:

<script language="javascript" for="document" event="onkeydown">

<!--

  if(event.keyCode==13)

     event.keyCode=9;

-->

</script>

這樣的處理方式,可以實現焦點往下移動,但對於按鈕也起同樣的作用,一般的客戶在輸入完資料以後,跳到按鈕後,最好能直接按"斷行符號"進行資料的提交.因此,對上面的方法要進行一下修改,應該對於"提交"按鈕不進行焦點轉移.而直接啟用提交.

 

因此我對上面的代碼進行了一個修改,即判斷事件的"源",是否為提交按鈕,代碼如下:

<script language="javascript" for="document" event="onkeydown">

<!--

  if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!='textarea' && event.srcElement.type!='')

     event.keyCode=9;

-->

</script>

判斷是否為button, 是因為在HTML上會有type="button"

判斷是否為submit,是因為HTML上會有type="submit"

判斷是否為reset,是因為HTML上的"重設"應該要被執行

判斷是否為空白,是因為對於HTML上的"<a>連結"也應該被執行,這種情況發生的情況不多,可以使用"tabindex=-1"的方式來取消連結獲得焦點.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.