1

私は解決策を見つけるのに苦労している本当に単純な問題を抱えています。

基本的に、私はそのように宣言された ASP.NET テキストボックスを持っています。

<asp:TextBox runat="server" ID="txtCourse" CssClass="input-xlarge HighlightibleField" placeholder=""></asp:TextBox>

このテキスト ボックスに、jQuery UI オートコンプリート ウィジェットを次のようにバインドしました。

$("#<% =txtCourse.ClientID %>").autocomplete({
    source: ["Course1", "Course2", "Course3"],
    select: function (event, ui) {
        __doPostBack("<% =btnPostBacker.UniqueID %>", "");
    }
});

ポストバックは期待どおりに発生しますが、txtCourse.Text は入力された値を保持 (またはポストバック) しません。

たとえば、先に進んで「Course1」を選択すると、値が txtCourse テキストボックスに入力され、ポストバックが発生し、txtCourse.Text の値が表示されますが、キーボードを使用して入力したテキストのみが表示されます (例: "c")。

タイマーを設定して、ポストバックの実行を少しだけ遅らせようとしました:

setTimeout(function () {
    __doPostBack("<% =btnPostBacker.UniqueID %>", "");
}, 500);

これは機能しているように見えますが、必要ではないと感じており、なぜ必要なのかわかりません。

私は何を間違っていますか?どんな助けでも心から感謝します。

4

1 に答える 1

1

選択したアイテムを投稿する必要がありますか?

select: function( event, ui ) {
    __doPostBack("<% =btnPostBacker.UniqueID %>", ui.item);
}

編集:またはおそらく:

  select: function( event, ui ) {
        $(this).val(ui.item);
        __doPostBack("<% =btnPostBacker.UniqueID %>", "");
    }
于 2013-02-13T00:20:22.613 に答える