使用keyup进行JS游标定位

时间:2017-04-28 10:32:26

标签: javascript jquery html

我有一个onkeyup函数来修改以大写字母输入的文本字母。

当我尝试在输入文本的中间编辑一个字母时,光标将自动定位在文本的末尾。

我希望光标保持相同的位置。

https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onkeyup

4 个答案:

答案 0 :(得分:0)

试试这个:

 <input type="text" id="fname" onkeypress="myFunction()">
 <script>
     function myFunction() {
       var x = document.getElementById("fname");
       x.value = x.value.toUpperCase();    
     }
 </script>

答案 1 :(得分:0)

我不知道你为什么需要这样的东西。但是试试#fname{ text-transform: uppercase; } ,这会有所帮助。

<input type="text" id="fname" onfocusout="myFunction()">

<script>
function myFunction() {
    var x = document.getElementById("fname");
    x.value = x.value.toUpperCase();
}
</script>

这是使用简单的CSS。 如果最后需要大写值,您可以在使用该CSS后尝试此操作。

profile.setPreference("dom.ipc.plugins.enabled.libflashplayer.so","true");

答案 2 :(得分:0)

仅限大写第一个字母:

function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase() + string.slice(1);
}

ToCase所有字母

this.value.toUpperCase();

答案 3 :(得分:-1)

$("#fname").on('input', function(){
     var start = this.selectionStart,
     end = this.selectionEnd;
     this.value = this.value.toUpperCase();
     this.setSelectionRange(start, end);
});

如果你想只将第一个后者设为upperCase而将所有其他设备设为小写。你可以做到这一点。

#fname {
    text-transform: lowercase;
}
#fname:first-letter {
   text-transform: uppercase;
}

但请仅使用课程制作一些风格。