【发布时间】:2015-09-21 07:51:23
【问题描述】:
这是与我编写的代码相关的错误。
我正在制作一个文本长度验证字段,想出了某种工作代码。但是,我在这里所做的事情是导致每次键入时文本光标都会向左移动,这意味着您键入的文本会向后或一团糟。
下面发生了什么可能导致这种情况? 我想可能是接头?
JSFiddle 和下面的 jQuery
$(function(){
var charLimit = 10;
$('.input').keypress(function(e){
if (e.which > 0){
var string = $(this).text().split("");
for(i=0;i<charLimit;i++){
if(string[i] !== undefined){
string.splice((charLimit-1),0,"<span class='error'>");
string.push("</span>");
}
}
$(this).html(string.join(""));
}
});
});
【问题讨论】:
-
我怀疑
$.html每次使用时都会重新初始化插入符号位置。 -
@JoshStevenson 非常好。祝你好运!
-
请注意,您可以使用正则表达式缩短此代码,但它仍然会遇到奇怪的插入符号放置问题:jsfiddle.net/1xqbLns5/7
-
@JoshStevenson 我猜你想要这样的东西 (jsfiddle.net/nh9hbxdf) 我在里面用过@RoryMcCrossan 的
regex -
感谢
regex@RoryMcCrossan
标签: jquery