我在使用自动完成文本框时遇到了一个非常讨厌的问题。每当用户从自动填充字段中选择一个项目并保留项目的值而不是输入的文本时,我想启动异步PostBack。当按下输入而不是鼠标点击时,这非常有效。
我的问题的一个例子:
有人进入该页面,并在文本框中输入1000。自动完成显示10002,1000B和10000.用户单击1000B并启动异步PostBack。而不是1000B,TextBox.Text值仍然是1000。
我的假设是文本框在实际分配给它之前启动PostBack。如果有人对我正在谈论的内容有任何可能的解决方案,我只是好奇。
答案 0 :(得分:1)
我以这种方式解决了这个问题:
根据网站上的其他问题,我在选项列表中添加了autoPostBack
参数。
在SelectCurrent()函数的底部,我添加了这些行。
if (options.autoPostBackSelection == true) {
__doPostBack($input.id, "");
}
然后,我的模糊功能看起来像这样:
.blur(function() {
hasFocus = 0;
if (!config.mouseDownOnSelect) {
hideResults();
}
if (options.autoPostBackSelection == true) {
selectCurrent();
}
我实际上对此有点挣扎,我的Javascript / DOM事件技巧不是很好。希望这有助于某人。