捕获Enter键码('13')后如何触发另一个键码?

时间:2013-07-29 13:33:54

标签: javascript keycode

我设法捕获了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>

1 个答案:

答案 0 :(得分:1)

我在这方面取得了一些成功:

 jQuery.event.trigger({ type : 'keypress', which : 65 });

在当前焦点处触发按键事件。

我认为不可能在中触发事件中更改事件上键码的值,也不可能在任意元素上触发按键事件,即使它是输入或实际上是当前焦点