我在我的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()
有谁可以帮我解决这个问题?感谢
答案 0 :(得分:0)
尝试使用search
事件,在您的示例中,您的范围很差。
答案 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请求。感谢。