【问题标题】:Why Virtual keyboard does not trigger AutocompleteList?为什么虚拟键盘不会触发 AutocompleteList?
【发布时间】:2010-04-25 08:54:32
【问题描述】:
我必须在具有 AjaxControlToolkit 的 asp:textbox 上使用虚拟(屏幕上)键盘
automcomplete 附加到它,我使用的虚拟键盘是 jQuery 键盘插件:http://keith-wood.name/keypadRef.html,但是我将这两者结合起来有些问题:
- 无法在虚拟键盘中键入
触发自动完成列表。
- 当文本框有
如果你点击 autopostback=true
虚拟键盘上的任何东西
文本框失去焦点和帖子
表格。
有谁知道在响应自动完成列表激活的事件时?
我还需要知道如何防止按下虚拟键盘上的按钮时文本框失去焦点?
【问题讨论】:
标签:
javascript
jquery
asp.net-ajax
【解决方案1】:
1) JavaScript 正在设置值并且 JavaScript 不会触发自动完成列表弹出。 [我怀疑无论如何都可以用 JavaScript 触发它]
2)单击“键盘”会从文本框中移除焦点,然后立即触发模糊事件并提交表单。 [您必须编写自己的 autopostback=true]
基本思想是添加一个调用document.forms[0].submit()的超时,如果在超时触发之前将焦点添加回文本框clearTimeout()
var textbox = document.getElementById("yourElementId");
textbox.blur = function(){ this.timer = window.setTimeout( function(){ document.forms[0].submit(); }, 100 ) };
textbox.focus = function(){ if(this.timer) window.clearTimeout( this.timer ); };