如何在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()
有人能帮我解决这个问题吗?感谢
尝试使用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请求。谢谢