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

本文关键字:文本 jquery | 更新日期: 2023-09-27 18:30:11

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

有人能帮我解决这个问题吗?感谢

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

尝试使用search事件,在您的示例中,您的作用域不好。

http://jqueryui.com/demos/autocomplete/#event-搜索

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

在朋友的帮助下,我终于找到了答案。

在处理程序"../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请求。谢谢