我编写此脚本来模拟tab键。我从这里混合了两个不同的例子,只对输入工作正常。
我的脚本是
$("#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>
答案 0 :(得分:1)
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();
}
}
});