通过JavaScript更新文本字段会强制游标结束

时间:2012-11-21 00:49:18

标签: javascript jquery

我正在使用JavaScript(jQuery)函数强制在文本字段中使用大写字母。问题是,如果用户键入,然后尝试使用箭头键,或者再次单击字段的开头并再次输入类型,则会强制光标返回到文本字段的末尾。

请参阅以下jsFiddle:http://jsfiddle.net/Msh7P/1/

键入任何内容,然后尝试使用左箭头键,或单击文本字段的开头并键入。

我该如何解决这个问题?感谢。

3 个答案:

答案 0 :(得分:2)

你可以用CSS做到这一点:

#username { text-transform: uppercase; }

答案 1 :(得分:2)

建议使用

CSS,或者你可以这样做:

$(document).ready(function() {
    $("#username").bind("input paste", function() {
        $(this).val($(this).val().toUpperCase());
    })
        .bind("keydown", function(e) {
            e.shiftKey = true;
        });
});​

答案 2 :(得分:1)

发生这种情况的原因是因为您要从DOM中删除光标所在的内容,然后用新内容替换它们。您将需要跟踪光标参考,然后在新内容中手动设置它的位置。