我试图通过自己解决这个问题,但我一直在苦苦挣扎。 我有5个输入组合在一起(它们实际上看起来像textarea),而我正在尝试做的是修复每个输入中字符数的限制,当我们达到char限制时,光标自动聚焦在下一个输入上并粘贴我们之前在最后一个输入中无法完全写入的最后一个字,如果我们删除该字的几个字符,它将返回到前一个输入(仅当字符限制为'n'时)达到了)。 这是我试图做的事情:
function passage(enCours, suivant, limite){
if (enCours.value.length == limite)
{
$('#cmzTextLines'+suivant).focus();
}
}
function test(now, suivant){
var text = $('#cmzTextLines'+now).val();
var textSuivant = $('#cmzTextLines'+suivant).val();
//var lines = text.split("\n");
for (var i = 0; i < text.length; i++) {
if (text[i].length <= maxLength) continue;
var j = 0; space = maxLength;
while (j++ <= maxLength) {
if (text[i].charAt(j) === " ") space = j;
}
textSuivant = text[i].substring(space + 1) + (textSuivant || "");
text[i] = text[i].substring(0, space);
}
}
HTML:
<input type="text" class="form-control" id="cmzTextLines1" name="cmzTextLines1" onkeyup="passage(this, 2, 30); test(1, 2);">
<input type="text" class="form-control" id="cmzTextLines2" name="cmzTextLines2"
onkeyup="passage(this, 3, 30); test(2, 3);">
答案 0 :(得分:0)
JSFiddle:https://jsfiddle.net/fumm44f3/2/
var replacedval = rawval.substring(0, rawval.length - lastwordlength);
$(this).val(replacedval);
$(this).next(".form-control").val(lastword);
从这里开始检查输入在退格时是否有0个字符,因为它已经检查退格,然后再转到prev输入,这很简单。