2017-02-06 1 views
0

私はJQueryを初めて使用しています。私はここで問題を抱えています。私はの単純なフォームのサブミット既定の動作を1つだけinput (text)input (btn)と置き換えようとしています。私は正常にデフォルトの動作をキャンセルしました。しかし、私がe.keyCodeまたはe.whichを見ると、どちらも定義されていません。私もこれを試してみたJQuery:ハンドラー情報が空です

$(".main-form").submit(function(e){ 
    console.log(e); 
    e.preventDefault(); 
}); 

::私は最終的にのようなまっすぐJavaScriptで働いて何かだ

$(".main-form").on("keypress", function(e){ 
    console.log(e); 
    e.preventDefault(); 
}); 

:ここでは、コードのコンソールでは、jQueryを使って

var main_form = document.querySelector('.main-form'); 

main_form.onkeypress = function (e) { 
    if (!e.metaKey) { 
    e.preventDefault(); 
    } 
    console.log(e); 
}; 

を、私が得るのは、空に満ちたものです。 JavaScriptを使用すると、必要な情報がすべて得られます。その背後にある理由は何ですか?私は何かが明らかでないと思う。

答えて

0

jQueryメソッドでは、eはjQueryイベントオブジェクトです。 JavaScriptのイベントを取得するには、キーコードe.originalEvent.keyCode

を取得するために originalEventプロパティ

$(".main-form").on("keypress", function(e){ 
    console.log(e.originalEvent); 
    e.preventDefault(); 
}); 

にアクセスすることができます

関連する問題