2016-05-22 8 views
1

は、私は、ユーザーが入力に入力された文字を知りたいと思ったmaxlengthで入力に入力された-real-最後の文字を取得する方法は?</p> <pre><code><input maxlength="20"/> </code></pre> <p>と最後の型付き文字返すスクリプト::私が入力してい</p> <p>:

var eingabe; 
$('form').on('keypress', function(event) { 

    /// if no whitespace: 
    if (String.fromCharCode(event.keyCode).replace(/\s/g, "").length > 0) { 
    eingabe = String.fromCharCode(event.keyCode); 
    $('#eingabe').html("<div>Eingabe : "+ eingabe +"</div>"); 
    } 
}); 

をマイ質問は: 私の入力がmaxlength属性を持っているので、キーボードの最後の入力された文字は、入力が "フル"なので最後に現実に入力された文字ではないことがあります。入力に最後の文字を入力するにはどうすればよいですか?

+0

''要素の値の最後の文字または最後の文字を使用しますか?それらの2つのものは同じではないようです。 –

+0

なぜ 'keypress'イベントが' input'要素ではなく 'form'要素に結びついていますか? – guest271314

+0

'input'に現れる' input'の最後の文字を欲しいです。 – buckdanny

答えて

0

入力要素の値を使用して$('#input_field').val().substr($('#input_field').val().length - 1)のような最後の文字を取得するか、フィールドに2回アクセスすることなく似たようなことを達成するために最高のコーディングスキルを使用してください。

+0

ありがとう、私は入力の最後の文字(文字列の最後)を取得したくないが、入力のどこにでもできる最後の型付きの文字 – buckdanny

0

私はそれを試していないが、それは働かなければならない...

はonkeypressでは設定する=またはにonKeyDown =入力要素上とLastChr変数のキー値を格納します。

0

私は同様の問題がありました。ユーザーが入力フィールドに特定の文字を入力すると、関数を呼び出す必要がありました。 「入力」は唯一のIE8までサポートされていることを、覚えておいてください

var input = document.getElementById('myInput'); 

input.addEventListener('input', function() { 
    // Get cursor position 
    var start = this.selectionStart; 

    // Get last typed character 
    var lastChar = String.fromCharCode(this.value.charCodeAt(start - 1)); 

    if(lastChar === '[YOURCHARHERE]') { 
     // do something 
    } 
}); 

ていますが、独自のブラウザを気にしないならば、あなたは問題ないはずです:私は次のようにそれを解決しました。私はこれが役立つことを願っています

関連する問題