1

JavaScript ( jQuery) 関数を使用して、テキストフィールドで大文字を強制しています。問題は、ユーザーが入力してから矢印キーを使用しようとした場合、またはフィールドの先頭をクリックして再度入力した場合、カーソルが強制的にテキストフィールドの末尾に戻ることです。

次の jsFiddle を参照してください: http://jsfiddle.net/Msh7P/1/

何でも入力してから、左矢印キーを使用するか、テキストフィールドの先頭をクリックして入力します。

どうすればこれを修正できますか? ありがとう。

4

3 に答える 3

2

これはCSSだけで実行できます。

#username { text-transform: uppercase; }
于 2012-11-21T00:54:38.017 に答える
2

提案されたCSS、またはこれを行うことができます:

$(document).ready(function() {
    $("#username").bind("input paste", function() {
        $(this).val($(this).val().toUpperCase());
    })
        .bind("keydown", function(e) {
            e.shiftKey = true;
        });
});​
于 2012-11-21T01:04:42.490 に答える
1

これが発生する理由は、カーソルがあったコンテンツを DOM から削除し、新しいコンテンツに置き換えているためです。カーソル参照を追跡してから、新しいコンテンツでその位置を手動で設定する必要があります。

于 2012-11-21T01:01:19.613 に答える