2

我设法抓住了 Enter 键码并阻止我的页面发布。但是我需要在 Enter 的位置添加另一个字符:确切地说,keycode 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>
4

1 回答 1

1

我在这种事情上取得了一些成功:

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

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

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

于 2013-07-29T13:37:50.173 回答