使用 enter 从输入切换焦点

我有一个 html 表单,我需要使用 enter 键从输入切换焦点(感谢我的主管说大多数人不知道 tab 键的用途)我已经尝试过这个解决方案


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">

jQuery.extend(jQuery.expr[':'], {

    focusable: function (el, index, selector) {

            return $(el).is('a, button, :input, [tabindex]');

    }

    });


$(document).on('keydown', 'focusable', function (e) {

        if (e.which == 13) {

            e.preventDefault();

            var $canfocus = $(':focusable');

            var index = $canfocus.index(this) + 1;

            if (index >= $canfocus.length) index = 0;

            $canfocus.eq(index).focus();

    }

    });

    </script>

这是我的表格


<form method = "post" action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>">

        <label for = "maquina">Maquina:</label><span class = "error"> * <?php echo $maquinaErr;?></span><br>

        <input type = "number" id = "maquina" name = "maquina" size = "20" tabindex = "1" value = "<?php echo $maquina;?>" autofocus><br><br>


        <label for = "gafete">Numero de gafete:</label><span class = "error" id = "eGafete"> * <?php echo $gafeteErr;?></span><br>

        <input type = "number" id = "gafete" name = "gafete" size = "20" tabindex = "2" value = "<?php echo $gafete;?>" onchange = "llamarGafete()">

        <br><br>


        <label for = "nparte">Numero de parte del componente:</label><span class = "error" id = "eNparte"> * <?php echo $nparteErr;?></span><br>

        <input type = "number" id = "nparte" name = "nparte" size = "20" tabindex = "3" value = "<?php echo $nparte;?>" onchange = "llenarUM()"><br><br>


        <label for = "um">UM:</label><span class = "error"> * <?php echo $umErr;?></span><br>

        <input type = "text" id = "um1" name = "um" size = "20" tabindex = "-1" value = "<?php echo $um;?>" readonly><br><br>


    </form>


Helenr
浏览 78回答 1
1回答

猛跑小猪

你忘了在新的可聚焦伪类前面加上:$(document).on('keydown', ':focusable', function (e) {
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript