2011-06-22 9 views
4

の外にクリックしたときの防止がフォーカスを失っ:私はjQueryので仮想キーボードを開発していますし、私の問題がある入力

私は、キーボードのキーをクリックすると、入力は、クリック時のフォーカスを失って、もし入力の文字数が入力サイズよりも長い場合、入力は文字列の先頭を示します。そして、クリックが解放されると、入力はフォーカスを戻し、キャレットは文字列の最後に来ます。だから、入力内容が点滅する印象があるので、かなり醜いです。

theButtonDiv.click(function() { 
    attachedInput.value = idOfAttachedInput.value + theActualKey; 
    attachedInput.focus(); 
}); 

私はキーボードのボタンをクリックしたときに入力のフォーカスを失いたくないようにしたいと思います。

どうすればいいですか?

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

+1

.setIntervalを使用して、関連するテキストボックスにフォーカスを設定できるようにすることができます。セットアップのしやすさという点では、これは比較的簡単ですが、そこにはもっと簡潔な答えがあることを喜んで賭けています。 – MoarCodePlz

+1

フィールドをフォーカスするのではなく、単にカーソル/キャレットの位置を設定する必要があります。この[関連する質問](http://stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area)をご覧ください。 – hughes

+0

私のソリューションは問題を解決しましたか? – CaptSaltyJack

答えて

-2

あなたはoutlineというCSSプロパティを探していると思います。

フォーカスが当たっているときにボックスが強調表示されるように注意してください。

+1

あなたはこの回答が別の質問になることを意味するか、彼が求めていたことを誤解していました。 –

4

1つの方法は、トップレベルのキーボードノードで "mousedown"イベントをリッスンし、イベントオブジェクトのpreventDefaultを呼び出します。

+0

これはうまくいきますが、これを使用すると、内部のものを選択しても機能しなくなることに注意してください。 – Tom

関連する問題