コードを何度か調べましたが、最初のキーストロークがカウントされないように見える理由がわかりません。
textarea が空の文字列の場合、カウンター表示は正確に読み取られる必要があります。しかし、テキストエリアを2回空にする必要があるようです........
コードを何度か調べましたが、最初のキーストロークがカウントされないように見える理由がわかりません。
textarea が空の文字列の場合、カウンター表示は正確に読み取られる必要があります。しかし、テキストエリアを2回空にする必要があるようです........
keyup
代わりにイベントを聞いてみてください。
keypress
イベントは、実際の文字がテキストエリアに挿入されているときに発生します。textarea —の値を読み取ると、イベントが返される前のmessage.get('value')
古い値。これは、カウンターに古い(不正確な)文字数が残っている理由を説明しています。keypress
keydown
、、keypress
およびkeyup
イベントの詳細: http ://www.quirksmode.org/dom/events/keys.html
アップデート:
<input>
およびへの変更を検出するためのより良い方法があり<textarea>
ます。
YUIevent-valuechange
モジュールは、ユーザーが次の方法で入力値を変更したときに発生するvaluechange
イベントを提供します。
IDの入力で使用する方法は次のmessage
とおりです。
YUI().use('event-valuechange', function (Y) {
Y.one('#message').on('valueChange', function (e) {
// The value has changed! Handle it here...
});
});
ライブデモ: http: //jsfiddle.net/Pd9X9/
keyup
イベントに変更すると、 http: //jsfiddle.net/jfriend00/grZW7/で問題なく動作します。keypress イベントは一部のキーでのみ発生し、フィールドのテキストが更新される前に発生する可能性がありますが、keyup
常に後で発生します。
イベントトリガーとして「keyup」を使用