0

テキストボックスの文字を大文字に変換しようとしています。

しかし、これは私のカーソル位置に影響を与えるようです。

以下のJSフィドル:

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

http://jsfiddle.net/ZdRnZ/

空白のテキストボックスに入力すると、すべて問題ありません...しかし、テキストの間に入力しようとすると、カーソルがすぐに単語の末尾に移動します。

どうすればそれを防ぐことができますか。カーソルは、テキストの最後ではなく、入力を停止した場所にある必要があります。

Firefoxでは問題なく動作しますが、IEではうまくいきません。IEで動作する必要があります

4

2 に答える 2

5

これは、CSSを介して実行することもできます。

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

これをHTMLページに入れると、テキストボックスによってすべてのテキスト入力が大文字になります。追加の修飾子があります:

小文字、大文字、なし、継承

もちろん、これはブラウザに依存する可能性がありますが、ほとんどのブラウザでサポートされているようです。

text-transformスタイルを追加し、jqueryイベントバインドをkeyupからchangeに切り替えるサンプルを更新しました:http: //jsfiddle.net/ZdRnZ/6/

于 2012-11-30T23:54:45.903 に答える
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%" />

于 2016-04-12T15:55:05.597 に答える