2016-06-28 30 views
1

我试图解决这个由我自己,但我一直在挣扎了很多。 我有5个粘在一起的输入(它们实际上看起来像一个textarea),我试图做的是修复每个输入中字符数量的限制,并且当我们达到字符数限制,光标会自动将焦点放在下一个输入上,然后粘贴上一个输入中最后一个输入不能完全写入的最后一个单词,如果我们删除了该单词的几个字符,它将返回到上一个输入(仅当字符限制isn没有达到)。 这里就是我试图做的:使用两个输入看起来像textarea

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

可能重复[聚焦下一次输入一次达到最大长度值](http://stackoverflow.com/questions/15595652/focus-next-input-onput-接近 - 最大长度值) –

+1

是的,这实际上对我的工作代码,但是我无法做到的是削减最后一个单词,例如让我说我一直在写“早上好”,而且输入只能保存8个字符,所以我想在第一个字符中有“好”的字符输入和“第二上午”而不是“好mor”“宁”。 –

回答

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输入。

相关问题