Jquery键盘功能和大写文本

时间:2012-11-30 23:41:07

标签: jquery

我正在尝试将文本框中的字符转换为大写字母。

但这似乎会影响我的光标位置。

JS小提琴如下:

$(this).val($(this).val().toUpperCase());

http://jsfiddle.net/ZdRnZ/

如果我输入空白文本框,一切都很好......但如果我尝试在文本之间输入,则光标会立即显示在单词的末尾。

如何防止它发生,我的光标应该是我停止输入的位置,而不是文本的末尾。

在Firefox中运行良好,IE搞砸了。我需要它在IE上工作

2 个答案:

答案 0 :(得分:5)

这也可以通过CSS实现:

<input style="text-transform: uppercase" type='text'></input>

将它放在HTML页面中,文本框将强制所有文本输入 大写。还有其他修饰符:

小写,大写,无,继承

当然,这可能与浏览器有关,但似乎大多数都支持 浏览器。

我已经更新了你的示例,添加了文本转换样式并将keyquup事件绑定从keyup切换到: http://jsfiddle.net/ZdRnZ/6/

答案 1 :(得分:1)

$('#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%" />