我正在尝试将文本框中的字符转换为大写。
但这似乎影响了我的光标位置。
JS小提琴如下:
$(this).val($(this).val().toUpperCase());
如果我在空白文本框中输入一切都很好......但是如果我尝试在文本之间输入,光标会立即转到单词的末尾。
我怎样才能防止它发生,我的光标应该在我停止输入的地方,而不是在文本的末尾。
在 Firefox 中运行良好,IE 搞砸了。我需要它在 IE 上工作
我正在尝试将文本框中的字符转换为大写。
但这似乎影响了我的光标位置。
JS小提琴如下:
$(this).val($(this).val().toUpperCase());
如果我在空白文本框中输入一切都很好......但是如果我尝试在文本之间输入,光标会立即转到单词的末尾。
我怎样才能防止它发生,我的光标应该在我停止输入的地方,而不是在文本的末尾。
在 Firefox 中运行良好,IE 搞砸了。我需要它在 IE 上工作
这也可以通过 CSS 实现:
<input style="text-transform: uppercase" type='text'></input>
把它放在你的 HTML 页面中,文本框将强制所有文本输入为大写。还有额外的修饰符:
小写、大写、无、继承
当然,这可能取决于浏览器,但似乎大多数浏览器都支持。
我已经更新了您的示例,添加了文本转换样式并将 jquery 事件绑定从 keyup 切换为更改:http: //jsfiddle.net/ZdRnZ/6/
$('#txt').keyup(function (e) {
var position, texto, code;
texto=this.value;
code=e.keyCode;
position=texto.slice(0, this.selectionStart).length;
if((code>=65 && code <=90 )|| code ==192 ){
this.value=texto.toUpperCase();
this.setSelectionRange(position,position);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" id="txt" style="width:100%" />