【发布时间】:2012-04-04 12:33:18
【问题描述】:
我在我的 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'时,我没有得到它 前缀文本:$(this).val()
谁能帮我解决这个问题?谢谢
【问题讨论】:
-
如果您查询 $(txtbox).val(),您会得到什么吗?我可能是错的,但我认为这种情况下的“this”是实际的自动完成本身,它没有选定的值
-
值得指出的是,您在这里没有使用 jQuery UI 版本的自动完成功能。您应该添加一个指向您正在使用的插件的链接,因为那里有几个类似的版本。
-
@mattytommo - 感谢您的快速回复。我也尝试过同样的方法,但没有成功。
-
@Mark Schultheiss - 实际上我们使用了一个插件,jQuery Autocomplete plugin 1.1 (/* * jQuery Autocomplete plugin 1.1 * * 版权所有 (c) 2009 Jörn Zaefferer * * 在 MIT 和 GPL 许可下双重许可: * opensource.org/licenses/mit-license.php * gnu.org/licenses/gpl.html * * 修订: $Id: jquery.autocomplete.js 15 2009-08-22 10:30:27Z joern.zaefferer $ */) 我们添加了 js 文件 jquery.autocomplete.js到我的 Web UI 项目。
标签: c# javascript jquery