2

Web アプリケーション (.Net 3.5) の一部のテキスト ボックスで jquery オートコンプリートを使用しています。私の問題は、接頭辞のテキストが常に空白であることです。正しい値が割り当てられません。

function TextBoxAutoComplete(scope, controlId, contextKeyId) {

var txtbox = null;
var flagValue;
if (scope) {
    txtbox = $('input[id$="' + controlId + '"]', scope);
} else {
    txtbox = $('input[id$="' + controlId + '"]', document);
}

var contextKeyValue = $('input[id$="' + contextKeyId + '"]', document).val();

$(txtbox).autocomplete("../Handlers/MiscHandler.ashx", {
    minChars: 0,
    extraParams: { prefixText: $(this).val(), count: '10', contextKey: contextKeyValue, flag: 'codePart' },
    selectFirst: false,
    width: 49
}).result(function(event, data, formatted) { // result is a separate function
    var dummy = new Object();
    dummy.value = data[1];
    dummy.text = data[0];
    var test = new Test(dummy);
});
}

ドキュメントの準備ができたら、上記のメソッドを呼び出します。ここでの問題は、変数 'prifixText' prefixText: $(this).val()に渡すときに、テキスト ボックスの値 (現在入力されているテキスト) を取得できないことです 。

誰でもこの問題を解決するのを手伝ってもらえますか? ありがとう

4

2 に答える 2

0

最後に、友人の助けを借りて答えを見つけることができました。

ハンドラから「../Handlers/MiscHandler.ashx」以下のように「prefixText」の値にアクセスして、テキストボックスのテキストにアクセスしてみました。

string prefixText = string.Empty;
if (context.Request["prefixText"] != null)
{
prefixText = context.Request["prefixText"].ToString();
}

しかし、うまくいかず、テキストボックスの値を取得できませんでした。その代わりに、クエリ文字列の「q」パラメーターにアクセスしました。これはデフォルトです。

if (context.Request["q"] != null)
{
prefixText = context.Request["q"].ToString();
}

これは完璧に機能し、jquery コードに問題はありませんでした。問題は HTTP リクエストの処理方法でした。ありがとう。

于 2012-04-05T10:43:54.953 に答える
0

searchあなたの例では、あなたは悪い範囲にいます。

http://jqueryui.com/demos/autocomplete/#event-search

オプションを設定するにはhttp://jqueryui.com/demos/autocomplete/#method-optionを使用します

于 2012-04-04T12:47:34.570 に答える