我正在使用 JavaScript ( jQuery
) 函数在文本字段中强制大写。问题是,如果用户键入,然后尝试使用箭头键,或者单击字段的开头并再次键入,它会强制光标回到文本字段的末尾。
请参阅以下 jsFiddle:http: //jsfiddle.net/Msh7P/1/
键入任何内容,然后尝试使用左箭头键,或单击文本字段的开头并键入。
我怎样才能解决这个问题?谢谢。
我正在使用 JavaScript ( jQuery
) 函数在文本字段中强制大写。问题是,如果用户键入,然后尝试使用箭头键,或者单击字段的开头并再次键入,它会强制光标回到文本字段的末尾。
请参阅以下 jsFiddle:http: //jsfiddle.net/Msh7P/1/
键入任何内容,然后尝试使用左箭头键,或单击文本字段的开头并键入。
我怎样才能解决这个问题?谢谢。
你可以只用 CSS 做到这一点:
#username { text-transform: uppercase; }
建议的CSS,或者您可以这样做:
$(document).ready(function() {
$("#username").bind("input paste", function() {
$(this).val($(this).val().toUpperCase());
})
.bind("keydown", function(e) {
e.shiftKey = true;
});
});
发生这种情况的原因是因为您要从 DOM 中删除光标所在的内容,然后用新内容替换它们。您将需要跟踪光标引用,然后在新内容中手动设置其位置。