javascript - 能够在使用 keyup 事件时用键盘移动光标

标签 javascript jquery dom-events

我有一个函数可以将大写字母转换为小写字母,也可以替换小破折号的空格。

问题是,当用户打错字并想要纠正它时,如果他尝试使用键盘将光标移回原处,他将无法这样做,因为光标将始终位于字符串的最后一个位置。

这里我有 JS fiddle 来运行示例: http://jsfiddle.net/R8N8F/7/

在示例中,我使用 jQuery,因为我无法使其与 jsfiddle 的 Javascript 一起运行,但这是我当前使用的函数:

function replaze(obj){
    obj.value = obj.value.toLowerCase().replace(/ /g, '-');
}

这是我的 HTML:

<input name="demo" autofocus="autofocus" onkeyup="replaze(this);" type="text" id="UserUsername">

最佳答案

您可以使用以下答案保留选择:

https://stackoverflow.com/a/3288215/96100

您可以使用我的 jQuery plug-in ,它使用相同的代码。示例:

var $input = $("#UserUsername");
$input.keyup(function() {
    var sel = $input.getSelection();
    replaze(this);
    $input.setSelection(sel.start, sel.end);
});

关于javascript - 能够在使用 keyup 事件时用键盘移动光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14219652/

相关文章:

javascript - 重构并干燥 jQuery 代码

javascript - 如何将元素添加到现有的CSS类

javascript - 模态内的拖放区

javascript - 在 asp.net 中客户端脚本验证后触发事件?

javascript - 单击父级时更改单选按钮状态

Javascript上传文件大小

javascript - Jquery Ajax函数问题

javascript - 如何删除由匿名函数声明的元素的事件?

javascript - JavaScript 中事件处理和定时器服务的优先级是什么?

javascript - 我希望让我的代码验证一个字段以确保它是四位数字。我怎样才能做到这一点?