更新输入值而不会丢失光标位置

时间:2013-01-24 18:58:55

标签: javascript jquery

  

可能重复:
  Stop cursor from jumping to end of input field in javascript replace

我想使用JavaScript强制文本框的值为小写。我已经尝试了下面的代码,但每次按一下键时光标都会跳到输入的末尾。我怎么能避免这个?

$("#beLowerCase").keyup(function(){
    $(this).val( $(this).val().toLowerCase() );
});

1 个答案:

答案 0 :(得分:120)

$("#beLowerCase").on('input', function(){

    // store current positions in variables
    var start = this.selectionStart,
        end = this.selectionEnd;

    this.value = this.value.toLowerCase();

    // restore from variables...
    this.setSelectionRange(start, end);
});

fiddle


这实际上也适用于CSS:

#beLowerCase{
  text-transform:lowercase;
}

服务器可以处理实际的下壳...