解決WEB頁面上"焦點控制"一法


解決WEB頁面上"焦點控制"一法

分類: Html/Css

對於B/S的系統,在頁面控制上不如C/S系統那么控制靈活,就如輸入的焦點問題,客戶都很想通過鍵盤對數據進行錄入,這樣的要求我想100個客戶中會有90個吧.

因此解決焦點獲取問題是必要的.大家可以從網上找到一些方法,不過都比較麻煩,我現在介紹一種很方便的.效果也很不錯的方法給大家.

我前段時間看了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"的方式來取消鏈接獲得焦點.

以上是我個人觀點,我是在ASP.NET中進行系統開發的,我會把這個客戶端腳本放在"BasePage"中,其他頁面都會繼承他,從而可以在很多頁面進行控制. 如有其他好辦法,希望大家討論.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM