2

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>
4

1 に答える 1

1

私はこの種のことでいくつかの成功を収めました:

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

現在のフォーカスで keypress イベントをトリガーします。

トリガーの途中でイベントのキーコードの値を変更することはできないと思います。また、任意の要素が入力であっても、実際に現在のフォーカスであっても、任意の要素でキープレス イベントをトリガーすることはできないと思います。

于 2013-07-29T13:37:50.173 に答える