如何在jquery自动完成中传递文本框值

时间:2012-04-04 12:33:19

标签: c# javascript jquery

我在我的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()

有谁可以帮我解决这个问题?感谢

2 个答案:

答案 0 :(得分:0)

尝试使用search事件,在您的示例中,您的范围很差。

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

设置选项使用http://jqueryui.com/demos/autocomplete/#method-option

答案 1 :(得分: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请求。感谢。