当输入框中的文本达到了设定的 maxlength
时,是否可以使用 Javascipt
自动将用户引导到下一个输入框?
如果可以,该如何实现?
当输入框中的文本达到了设定的 maxlength
时,是否可以使用 Javascipt
自动将用户引导到下一个输入框?
如果可以,该如何实现?
是的,这是可能的。假设您的文本框最大长度为5。您需要在onkeyup事件上创建一个函数,并计算文本框值的长度。在此函数中,如果长度等于或超过5,则需要编写第二个文本框焦点函数调用。
$('#productkey1').keyup(function() {
if(this.value.length >= $(this).attr('maxlength'))
{
$('#productkey2').next().focus();
}
});
>=
而不是 ==
。 - Raptor
-
- Apb是的。您需要:
onkeydown
}}事件以防止字符“溢出”,focus
}}方法将焦点设置在下一个字段上。是的,您需要通过onkeyup
事件计算输入字段中插入的字符数。如果字符数等于最大长度,则将focus
设置为下一个字段。
function moveOnMax(field,nextFieldID)
{
if(field.value.length >= field.maxLength)
{
document.getElementById(nextFieldID).focus();
}
}
但它没有起作用。 - Apb你可以使用 jQuery 来编写类似以下的代码。在该代码中,当文本长度超过20个字符时,将会跳转到 #second 字段
<input id="first"/>
<input id="second"/>
<script>
$(function() {
$('#first').keypress(function() {
var self = $(this);
//wait until character is inserted
setTimeout(function() {
if (self.val().length > 20) {
$('#second').focus();
}
}, 1);
});
});
</script>
首先,您需要钩入输入的onfocus
事件,以知道您正在开始测量。然后,您需要使用onkeyup
事件检查输入字符的长度。一旦达到限制,您可以在下一个DOM元素上调用focus()
,以将光标移动到该元素上。您还需要使用onblur
事件来知道您已停止测量输入的长度。
例如,使用jQuery:
<input id="inputA" type="text"/>
<input id="inputB" type="text"/>
<script>
var $input;
$('#inputA').focus(function() {
$input = $(this);
});
$(window).keyup(function() {
if($input && $input.val().length == 5) {
$('#inputB').focus();
}
});
$('#inputA').blur(function() {
$input = null;
});
</script>