我根据它的长度改变了我的项目的焦点。我遇到的问题是当它进入下一个输入时,未选择输入的值。这会导致问题。如果我想编辑一个日期并且当前日期是'12 / 10/2011'我应该能够选择月份(突出显示12)并输入'12112011'但是当我的焦点从一个月到一天时会发生什么如果我快速键入,则光标位于数字后面,或者跳到年份类别,或者如果慢慢地将光标留在数字后面。我在函数中构建了一个延迟,虽然这解决了跳转到年份类别的问题,但它仍然让我将光标置于值后面而不是选择它们。这意味着我必须输入'12 + backspace + backspace + 11 + backspace + backspace ++ backspace + backspace + 2011'
如果在更改焦点时正确选择了值,则理论上可以解决此问题。我知道我可能没有这么好解释但是不要害怕,jsfidlle太拯救了。
如果你想在不访问jsfiddle的情况下看到我正在使用的脚本,那就是。
$('.dateSpinMonth').on('keyup', function () {
if (this.value.length >= 2) {
$('.dateSpinDay').focus();
}
});
$('.dateSpinDay').on('keyup', function () {
if (this.value.length >= 2) {
$('.dateSpinYear').focus();
}
});
HTML:
<div>
<input class="dateSpinMonth" type="text" maxlength="2"/>
<span>/</span>
<input class="dateSpinDay" type="text" maxlength="2"/>
<span>/</span>
<input class="dateSpinYear" type="text" maxlength="4"/>
</div>