Javascript/jQuery 转到下一个输入/选择更改选择值

标签 javascript jquery input key simulate

我编写这个脚本来模拟 Tab 键。我混合了这里的 2 个不同的示例,并且仅适用于输入。

我的脚本是

$("#home").on('keydown', function(event) {
    if(event.ctrlKey && ( event.which === 39 ) ) {
    var target = document.activeElement;
        var next = target;
        while (next = next.nextElementSibling) {
            if (next == null)
                break;
            if (next.tagName.toLowerCase() == "input" || next.tagName.toLowerCase() == "select") {
                next.focus();
                break;
            }
        }
    }
});

我有两个问题。 首先选择输入

<select id="position" class="toNextWithSimulateTab" name="position" form="athlets_data" style="width:175px">
     <option name="1">1</option>
     <option name="2">2</option>
     <option name="3">3</option>
     <option name="4">4</option>
</select>

当选择输入为焦点并且我按 ctr 和右箭头(由脚本定义以转到下一个输入)时,将值更改为下一个,然后聚焦下一个输入。 我想选择一个选项,然后使用 ctrl 和向右箭头转到下一个输入。

第二个问题:

我已经将表单分成了两个 div 右列和左列,因此当我单击左侧的 div 输入并使用我的脚本(ctrl 和右箭头)来选项卡输入时,当转到最后一个输入时无法移动到首先在右侧 div 输入。

有什么想法吗?

提前致谢

<div id="home" class="tab-pane fade in active row" style="padding-left: 20px;">
    <h3 style="color:#06F">Στοιχεία ασθενή</h3>
    <br>
    <form action="add_new_patient_card.php" id="patient_data" class="redirected_form" method="post">
    <div id="patient_data_left_column" class="col-md-5">
        <a>Lastname: </a>
        <input id="lastname" type="text" class="toNextWithSimulateTab" name="lastname" value="">
        <br>
        <br>
        <a>Firstname: </a>
        <input id="firstname" type="text" class="toNextWithSimulateTab" name="firstname" value="">
        <br>
        <br>
        <a>Fathers name: </a>
        <input id="fathersname" type="text" class="toNextWithSimulateTab" name="fathersname"  />
        <br>
        <br>
        <a>Position: </a>
        <select id="position" class="toNextWithSimulateTab" name="position" form="athlets_data" style="width:175px">
            <option name="1">1</option>
            <option name="2">2</option>
            <option name="3">3</option>
            <option name="4">4</option>
</select>
        <br>
        <br>
        <a>AMA: </a>
        <input id="ama"  type="text" class="toNextWithSimulateTab" name="ama"  />
        <br>
        <br>
        <a>Birthday: </a>
        <input id="bday" type="date" class="toNextWithSimulateTab" name="bday" style="width:175px"  />
        <br>
        <br>
        <a>Sex: </a>
        <select id="sex" class="toNextWithSimulateTab" name="sex" form="patient_data" style="width:175px">
            <option name="male">male</option>
            <option name="female">female</option>
        </select>
        <br>
        <br>
    </div>

    <div id="patient_data_right_column" class="col-sm-5">
        <a>Phone: </a>
        <input id="phone" type="text" class="toNextWithSimulateTab" name="phone" value="">
        <br>
        <br>
        <a>Mobile: </a>
        <input id="mobile" type="text" class="toNextWithSimulateTab" name="mobile" value="">
        <br>
        <br>
        <a>Fax: </a>
        <input id="fax" type="text" class="toNextWithSimulateTab" name="fax" value="">
        <br>
        <br>
        <a>Email: </a>
        <input id="email" type="text" class="toNextWithSimulateTab" name="email" value="">
        <br>
        <br>
        <a>Address: </a>
        <input id="address" type="text" class="toNextWithSimulateTab" name="address" value="">
        <br>
        <br>
        <a>City: </a>
        <input id="city" type="text" class="toNextWithSimulateTab" name="city" value="">
        <br>
        <br>
        <a>Country: </a>
        <input id="country" type="text" class="toNextWithSimulateTab" name="country" value="">
    </div>
</form>
  </div>

最佳答案

OUFF 这太难了,但我做到了 hihihi 这里是 Demo

$(".toNextWithSimulateTab").keydown(function(event)
{
    if( event.ctrlKey && ( event.which === 39 ) ) 
    {
        event.preventDefault();
        $(this).next(".toNextWithSimulateTab").focus();
        if($(this).is(":last-child") && $(this).parent().attr("id") == "patient_data_left_column")
        {
            $(this).parent().next().find(".toNextWithSimulateTab:first-child").focus();
        }
    }
});

关于Javascript/jQuery 转到下一个输入/选择更改选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32809201/

相关文章:

javascript - 选择后开始文件上传

javascript - 是否可以检测文本何时换行?

javascript - JS 按 Enter 时收到不需要的 'enter/return'

text - 我可以对具有contenteditable的元素使用自动对焦吗?

javascript - 当值超过 100 时,如何使用 AngularJS 初始化输入[范围]的值

javascript - 如何将凭据存储到本地存储以允许 Firebase Auth 登录

javascript - 样式化组件 v5.3 createGlobalStyles 不起作用

Jquery 删除表格中第一行和最后一行的背景颜色

javascript - 检测iframe src是否可显示

javascript - JS RegEx 替换非捕获组?