我正在制作一个Web应用程序,用于验证密码并显示一些值。一个文件需要输入四个密码才能通过验证。我将这些密码输入方式设计成与在支付网关中输入信用卡号码相同。在我的现有应用程序中,我输入一个密码,然后必须按Tab键或使用鼠标选择下一个文本框来输入下一个密码。请问如何使得鼠标光标在填写每个密码的最大值后自动跳转到下一个文本框,就像在支付网关中一样。
我正在制作一个Web应用程序,用于验证密码并显示一些值。一个文件需要输入四个密码才能通过验证。我将这些密码输入方式设计成与在支付网关中输入信用卡号码相同。在我的现有应用程序中,我输入一个密码,然后必须按Tab键或使用鼠标选择下一个文本框来输入下一个密码。请问如何使得鼠标光标在填写每个密码的最大值后自动跳转到下一个文本框,就像在支付网关中一样。
您可以像这样使用纯JavaScript:
<script type="text/javascript">
function ValidatePassKey(tb) {
if (tb.TextLength >= 4)
document.getElementById(tb.id + 1).focus();
}
}
</script>
<input id="1" type="text" onchange="ValidatePassKey(this)" maxlength="4">
<input id="2" type="text" onchange="ValidatePassKey(this)" maxlength="4">
<input id="3" type="text" onchange="ValidatePassKey(this)" maxlength="4">
<input id="4" type="text" maxlength="4">
Control.Focus()
方法即可。focus()
:$("#textbox").focus();
你也可以创建一个指令来获取位置移动
<a href="https://plnkr.co/edit/G6sFMM9vaR6nQfVaMI2E?p=preview">directive 1</a>
<a href="https://plnkr.co/edit/G32KUITspNp1qsq6gleI?p=preview">directive 2</a>
在下一个文本框上使用TextBox.Focus()方法。 使用第一个文本框的TextBox.TextChanged事件来测试是否应该更改焦点,并调用下一个文本框的Focus方法。
<script type="text/javascript">
$(document).ready(function(){
$("#1").keyup(function(){
var text_lenght = $('#1').val().length;
if (text_lenght == 3) {
$('#2').focus();
}
});
$("#2").keyup(function(){
var text_lenght = $('#2').val().length;
if (text_lenght == 3) {
$('#3').focus();
}
});
});
</script>
<input id="1" type="text" class="form-control" name="phone1" maxlength="3" >
<input id="2" type="text" class="form-control" name="phone2" maxlength="3" >
<input id="3" type="text" class="form-control" name="phone3" maxlength="4">