我设法捕获了Enter键码并阻止我的页面发布。 但我需要在Enter位置添加另一个字符:准确地说是键码39。
我怎样才能做到这一点?这是我的javascript。我看到警报发射而不是以下功能:(
输入代码
function CkKeyPress(e) {
var evt = (e) ? e : window.event;
var key = (evt.keyCode) ? evt.keyCode : evt.which;
if (key == 13) {
CancelDefault(evt);
}
}
function CancelDefault(e) {
if (e.preventDefault) {
e.preventDefault();
alert('enter caught');
ReplaceEnterWithCharacter();
}
e.returnValue = false;
}
function ReplaceEnterWithCharacter() //this function doesnt work somehow
{
e = $.Event('keyup');
e.keyCode = 65; // A
$('input').trigger(e);
}
<asp:TextBox ID="txtSearch" runat="server" onkeypress="return CkKeyPress(event);"></asp:TextBox>
答案 0 :(得分:1)
我在这方面取得了一些成功:
jQuery.event.trigger({ type : 'keypress', which : 65 });
在当前焦点处触发按键事件。
我认为不可能在中触发事件中更改事件上键码的值,也不可能在任意元素上触发按键事件,即使它是输入或实际上是当前焦点