jquery - 需要制作一个在大多数浏览器中工作的 jQuery 脚本(跨浏览器)

标签 jquery button cross-browser simulation enter

我已经成功地使下面的脚本在 Firefox 12.0 中运行。 IE 和 Chrome 无法正常工作。假设文本区域 ID 为 #ICCID 和 #MSISDN,则 jQuery 如下所示:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(function() {
            $(document).ready(function() {
            $("#ICCID").focus();
            });

            var $inp = $('.cls');

            $inp.bind('keydown', function(e) {
                var key = e.which;
                if (key == 9) {

                    e.preventDefault();
                    var nxtIdx = $inp.index(this) + 1;                  
                    $(".cls:eq(" + nxtIdx + ")").focus();

                //Simulate Enter after TAB
                var textInput = $("#MSISDN").val();
                var lines = textInput .split(/\r|\r\n|\n/);
                if (lines > 1) {

                    $("#MSISDN").on("keypress", function(e) {
                    if (e.keyCode == 9) {
                    var input = $(this);
                    var inputVal = input.val();
                    setTimeout(function() {
                    input.val(inputVal.substring(0,inputVal.length) + "\n");
                          }, 1);
                       }
                    });
                }



                }
                if (key == 9) {

                    e.preventDefault();
                    var nxtIdx = $inp.index(this) - 1;
                    $(".cls:eq(" + nxtIdx + ")").focus();

                //Simulate Enter after TAB
                $("#ICCID").on("keypress", function(e) {
                if (e.keyCode == 9) {
                var input = $(this);
                var inputVal = input.val();
                setTimeout(function() {
                input.val(inputVal.substring(0,inputVal.length) + "\n");
                      }, 1);
                   }
                });


                }
            });
        });
</script>

该脚本的想法是通过按键盘上的 TAB 按钮在两个特定文本区域之间切换,加载网页时初始焦点位于第一个文本区域,并在 TAB 操作完成后模拟按下 Enter 按钮。对于此 TAB 键按下事件,必须忽略页面上的所有其他元素。

谁能帮忙解决这个问题吗?

最佳答案

当您第一次绑定(bind) keydown 操作时,我会尝试:

$inp.bind("keydown", function(e)
{
    var code = (e.keyCode ? e.keyCode : e.which);
    if(code == 9)
    {
        //DO SOMETHING
    }
});

我还会将所有 keypress 更改为 keydown

或者尝试阅读 http://api.jquery.com/keypress/

关于jquery - 需要制作一个在大多数浏览器中工作的 jQuery 脚本(跨浏览器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10650604/

相关文章:

javascript - 如何在单击jQuery时向下滚动一定距离

javascript - 尝试使用 jQuery 替换悬停时的图像

c# - ASP :button and javascript popup

ios - 如何在按钮和警报消息上放置最大值

Javascript : onHashchange Test

Jquery Css 从 div 获取旧位置?

javascript - 无法执行操作的 php 按钮

javascript - 在 JQuery 中单击后禁用按钮

css - 在 FireFox 的文本区域内定位文本

css - 关于 base 64 编码及其浏览器支持的问题