0

文字数を制限する機能に取り組んでいます。ユーザーは入力テキスト フィールド内に入力できます。

これです:

$.fn.restringLength = function (id, maxLen) {

            $(id).keypress(function(e){

                var kCode = e.keyCode ? e.keyCode : e.which,

                    len = $(id).val().length;

                if (kCode != 8 && kCode != 46) {

                    if (len > maxLen) e.preventDefault();
                }
            });
        }

この関数は keypress イベントをバインドし、押されたキーのコードを取得します。

チャーの場合。制限に達すると、削除キーとバックスペース キーのみを押すことができます。

うまく機能するために必要なのは、次の動作をさせるために「onselect」イベントをバインドする方法です。

ユーザーがマウスでテキスト全体を選択し、文字または数字を入力すると、テキスト全体が削除され、その文字が表示されます。

これは、一部のテキストを別のテキストに置き換えたいときにほとんどの人が行うことであり、関数でこれを有効にしたいと考えています。

どのようにアイデアはありますか?

4

1 に答える 1

0

何か付け加えるなら、

ソリューションは keypress イベントを使用するため、入力の新しい値が計算される前にイベントがトリガーされます。そのため、 backspace 、 enterなどの特殊キーをチェックする必要があります...これらは文字列に文字を追加するだけではないため、特別な処理が必要です。

この種の処理では、文字列の計算にハンドラーをトリガーする方が便利です。このようにして、入力値にアクセスし、正しくない場合は変更できます。

残念ながら、jquery はこのイベントをサポートしていませんが、バニラの JavaScript メソッドで使用できます。

$(id)[0]   // get the vanilla js element
.oninput = function(e){
  this.value = this.value.substr( 0 , 10 )  // this.value contain the string after the key press processing
}
于 2013-11-14T20:59:56.633 に答える