我正在使用asp:按钮使用Java脚本创建一个带有A-Z的键盘和用于触摸屏的0-9。此键盘与一个文本框链接。如果我们单击一个按钮,相应的文本将显示在文本框中。它的工作正常。我已使用jquery JQuery Autocomplete将自动填充功能包含在此文本框中。
问题:
代码:
<asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>
<asp:Button ID="zero" runat="server" Text="0" CssClass="myclass" OnClientClick="return typeLetter(this);" TabIndex="20"/>
function typeLetter(currentbutton) {
if (previousActiveElement != null) {
if (previousActiveElement == 'antSearchText'){
var position = document.getElementById('position').value;
if (position == '') {
alert('chk position');
} else {
var existingString = document.getElementById(previousActiveElement).value;
var beforeString = existingString.substring(0, position);
var afterString = existingString.substring(position, existingString.length);
document.getElementById(previousActiveElement).value = beforeString + currentbutton.value + afterString;
setCaretPosition(document.getElementById(previousActiveElement), parseInt(position) + 1);
setCaretPosition(document.getElementById(previousActiveElement), parseInt(position) + 1);
}
}
}
return false;
}
编辑:
在自动完成插件中,以下是获取关键事件,如何使用我的密钥传递相同的键事件?
$input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) {
}
答案 0 :(得分:0)
尝试手动触发jQuery keydown / keyup事件。我不记得我的生活中有哪一个自动完成触发,但这里是要点:
// your documment.getElementById(...)
jQuery('#'+previousActiveElement).keyup();
// your setCaretPosition
尝试不同的关键事件,并且应该启动自动完成功能。
希望有所帮助!
谢谢, 乔
答案 1 :(得分:0)
使用以下代码解决问题。
代码:
var q = document.getElementById('txtbox');
var evObj = document.createEventObject();
evObj.keyCode = 84; // [T] key
q.fireEvent('onkeydown', evObj);
格塔。