我使用JavaScript动态生成输入(最大长度为1),因此我不必手动输入全部内容。我让他们这样,当我键入他们,他们去下一个输入,当我按下退格键时,他们删除输入内的值,然后转到前一个。
预期的行为
当我按空格键,它会删除该信件,然后去到以前的输入。
实际发生的
当我按空格键,它会删除该信件,然后做这个奇怪的洗牌,然后我再次按空格键,然后将其移动到前面输入。
这里是一个JSFiddle重现我遇到的问题。
由于堆栈溢出不会让我张贴此不代码(这里是jQuery代码):
function generateInputRows() {
var inputHTML = "";
for (var i = 0; i < 5; i++) {
inputHTML += '<div class="inputColumn"><input maxlength="1" type="text"><div>';
inputHTML += (i + 1);
inputHTML += '</div></div>';
}
inputHTML += '</div>';
return inputHTML;
}
function setUpTyping(){
$('.inputColumn input').on('input',function(event){
var inputs = $('.inputColumn input');
var index = inputs.index(this);
inputs.eq(index + 1).focus();
});
$('.inputColumn input').on('keyup', function(e) {
if(e.keyCode == 8 && $(this).val() == ""){
var inputs = $('.inputColumn input');
var index = inputs.index(this);
inputs.eq(index - 1).focus();
}
});
}
$('#rows').html(generateInputRows());
setUpTyping();
我不敢相信这件事很简单! – silverAndroid