私はグレンスラベンからとクリス/アレックスから回答が近づく添付AutoCompleteExtenderを持っていたASP.NET TextBoxコントロールにフォーカスを設定すると私の特定の問題への解決策に私を得ることがわかりました。 document.getElementById(focusControlID).focus()は、document.getElementByIdがnullオブジェクトを返すことを意味するjavascriptエラーをスローし続けました。 focusControlID変数は、TextBoxコントロールの正しいランタイムClientID値を返していました。しかし、どんな理由であれ、document.getElementById関数はそれを気に入らなかった。
私は、既にフォーカスを持っているコントロールのバックグラウンドをペイントし、ポストバックを発生させる代わりにフォームを介してEnterキーを強制的に押して、jQueryをミックスに投げ込んでいました。
私は、setFocus機能は次のように見てしまった:
function setFocus(focusControlID) {
$('#' + focusControlID).blur();
$('#' + focusControlID).focus();
}
これは、JavaScriptのランタイムエラーの解消を希望TextBoxコントロールにフォーカスを置き、同様にコントロール内にカーソルを置いてしまいました。フォーカスを最初にぼかすことなく、コントロールがフォーカスを持っているかのように強調表示されますが、カーソルはまだコントロールに座っていません。ユーザーは編集を開始するためにコントロールの内部をクリックする必要がありますが、これはUXの煩わしさです。
また、私は、これはハックであることを皆に同意する...あなたの走行距離は異なる場合私の100から300にタイムアウトを増やすこと
を持っていました。しかし、エンドユーザーの観点からは、このコードは表示されません。コントロールの内部に自動的に配置され、最初の数文字を入力して自動検索機能を起動するのではなく、手動でコントロールの内部をクリックする必要があるかどうかが問題です。だから、ハックを提供したすべての人に帽子をかける。
私はこれが他の人にとって有益だと思っています。
+1それはハックだと認めています:) – edosoft