zoukankan      html  css  js  c++  java
  • 解决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"中,其他页面都会继承他,从而可以在很多页面进行控制. 如有其他好办法,希望大家讨论.

  • 相关阅读:
    Delphi中TFlowPanel实现滚动条效果
    Delphi组件开发-在窗体标题栏添加按钮(使用MakeObjectInstance(NewWndProc),并处理好多消息)
    减小Delphi的Exe文件大小(11种方法)
    画出太极图
    类似地图的以鼠标为中心缩放图像
    andoid x项目的优化 1
    ICON图标文件解析
    所有语言的Awesome(2)
    获取EIP(汇编语言直接给Delphi变量赋值)
    Qt Windows下链接子系统与入口函数(终结版)(可同时存在main和WinMain函数)
  • 原文地址:https://www.cnblogs.com/skyay/p/4532594.html
Copyright © 2011-2022 走看看