Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在不丢失光标位置的情况下更新输入值_Javascript_Jquery - Fatal编程技术网

Javascript 在不丢失光标位置的情况下更新输入值

Javascript 在不丢失光标位置的情况下更新输入值,javascript,jquery,Javascript,Jquery,我想使用JavaScript强制要求文本框的值为小写。我尝试了下面的代码,但每次按下一个键时光标都会跳到输入的末尾。我怎样才能避免这种情况 $("#beLowerCase").keyup(function(){ $(this).val( $(this).val().toLowerCase() ); }); 这实际上也适用于CSS: #beLowerCase{ text-transform:lowercase; } 服务器可以处理实际的下外壳…保留选择范围,并在设置值后恢复选择范

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

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

这实际上也适用于CSS:

#beLowerCase{
  text-transform:lowercase;
}

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

保留选择范围,并在设置值后恢复选择范围?是!!它会发生,因为你在做什么!!基本上,您不想更改整个值。找到一种方法,只需更改按下的键,而不是整个值,可能更简单,只需将模糊值小写。@MikeChristensen,不幸的是,这对我正在做的工作不起作用。幸运的是,我不必关心IE:太棒了!!CSS的东西更好!我讨厌jQuery有一个原因,因为每个人都在根本没有必要的时候使用它。对于Safari:不要用onblur触发这个小写函数,否则输入会保持焦点不变。在使用这种技术去除字符时,不要忘了考虑光标位置的变化。如果值的长度在设置selectionRange之前发生变化,则应从选择的开始和结束处减去长度差。
#beLowerCase{
  text-transform:lowercase;
}