2016-05-13 4 views
0

javascript/jQueryで1文字以上の文字をテキストフィールドに入力するか、ブラウザのオートコンプリート/ペーストを使用するかを判断する必要があります。ユーザーが1文字ずつ入力しているかどうかを判断する

私は、ブラウザのオートコンプリートを決定するための入力方法を使用する必要が

$('input[type=text]').input(function(){ 
    var a = this.value; // input value 
    var b = a.length; // amount of chars 

    $.each(a, function(i, j) { 
    // Loop through the input value each time after something is entered 
    } 
}); 

私はそれが= 1つのタイピングが想定されていますので、もし、またはそれが1以上だ場合、私は、最後の入力値の長さが必要だと思いますペースト/オートコンプリートが仮定されます。

技術的には、1文字を貼り付けることができますが、今のところ心配する必要はありません。

ありがとうございました。

答えて

1

イベントを処理し、現在のkeyupとそれ以前の入力文字列の長さを追跡する必要があります。文字列のlengthの差が1より大きい場合は、自動補完または貼り付け入力の結果であることがわかります。

+0

私はkeyupでいくつかのものを試しましたが、ユーザーがオートフィルの提案をクリックしてテキストフィールドに貼り付けると、キーアップが発生しないという問題があります。私はキーアップと入力をバインドすることができますが、その問題は入力時にトリガーされ、入力のみがオートコンプリートでトリガーされることです。 – Rick

+0

はい、そうです。そのイベントを処理します(オートコンプリートがイベントをブロードキャストし、それを処理し、それ以外の場合は、それを処理します)、上記のメソッドiを実行します。右クリック(ターゲットが入力フィールドの場合)を処理したい場合もあります。これは別の警告である可能性があります。 – xandercoded

+0

jqueryでは、ハンドラを複数のイベントに簡単に割り当てることができます。 '$(' input [type = "text"] ')。on(' click、keyup、someotherevent '、handlerFunction); '関数は、前記入力に何をするべきか、および現在の実行と前の実行との間の入力差が「1」より大きいかどうかを決定するために使用される... – xandercoded

関連する問題