2012-02-10 13 views
3

jQueryを使用すると、キーボードのプレスを自動的にシミュレートできますか? htmlの入力フィールドの中に?は自動的にjQueryでキーボードを押しますか?

説明:入力欄にを押すと「a」が表示されます。私はキーボードの中からではなく、ボタンを押してこれをやりたいと思います。私はval("a")を入力に使用することができますが、これは達成したいことではありません。

それが唯一のキー入力イベントのイベントハンドラを呼び出すので、私はtrigger() doesn't助けを考えます。私はハンドラを呼びたくはありませんが、積極的にキーボードを押すのではなく、積極的に押します!

+1

これはかなり大きなセキュリティ上の脆弱性です。おそらくActiveXで行うことはできますが、お勧めできません。 –

+1

これがなぜ必要なのか説明できますか?より良い方法があるかもしれません。 –

+0

私はあなたが何をしようとしているのか本当に分かりません。あなたはキー入力を生成するスクリプトを指していますか?入力フィールドに何を書き込むかに関するチュートリアルを誰かに見せるようなものですか?例えば、ページロード - >毎秒キーボードの新しい文字が入力されますか?もしそうなら、達成するのは難しくありません。 – Downpour046

答えて

0

私は、キーボードと直接対話するためのJavaScript APIがあるとは思いません。私はフィールドの値の変化をイベントハンドラの発射と組み合わせることを提案します。これは、通常はキーボードのプレスに対応するイベントハンドラの発射と組み合わせて、フィールドの動作が正常にトリガされるようにします。

3

トリガーは、あなたが内部で構築しているので、その前にすべては、あなたが到達できないOSの問題(である...それはイベントが発生しますので...、助け、それはあなたがブラウザに興味がある唯一のものですしいくつかのActiveXコントロールをビルドしない限り)。だから、これは動作するはずです:

var e = $.Event("keypress"); 
e.which = <some_key_code>; 
$("<your_input_selector>").trigger(e); 

あなたはブラウザがキーボード入力を登録する際here KeyPressイベントが送信され見ることができるように。キー押下とキーダウンの違いは次のとおりです。「ユーザーがキーを押して保持すると、​​イベントが1回トリガーされますが、挿入された文字ごとに個別のイベントが発生します...」。ユースケースに応じて、どちらを使用するかを決めることができます。

1

あなたのようなものを試すことができます。

$("inputSelector").trigger($.Event("keypress", { keyCode: 97 })); 

はあなたが好きなキーのキーコードを渡します。

1

なし。 Javascriptでは実際のキーボード・キー・プレスをシミュレートすることはできません。キーボードのキー入力はJavascript/Browserの外にある多くのプロセスを必要とします。

別の方法としては、キープレスイベントをシミュレートすることができますが、私はあなたがキーを押して呼び出すにしたくないと思います。

0

JavaScript(とjQuery)のキー入力を模倣すると、必要な場所に「タイプされた」文字が挿入され、関連するハンドラ(つまりtrigger)が発生します。

1

目標はネイティブブラウザのkeypressイベントを模倣するのではなく、入力フィールド内のテキストを操作するために、必ずしもではないかのように私には思えます。私が正しい場合

、あなたは.prop('selectionStart').prop('selectionEnd')値をフェッチし、あなたが「キープレス」する文字(複数可)によって、それらのインデックス内の任意の文字を上書きすることができます。適切なキーボードイベントをトリガすることでこれを実行できます。

私は決して前にテキストの選択に取り組んだことはありません。私はIEが通常のブラウザとは異なる処理をすることを知っていますので、このトピックに目を通して、この道を歩くことを選択した場合、ブラウザ間の解決策を見つける必要があります。完璧なものにするために、入力の値をネイティブのペーストのように変更した後で、選択プロパティを変更する必要があります。

関連する問題