jQueryプラグインを使用して選択ボックスを置き換えています。Enterキーを押したときにシフトキーを押したまま項目を選択すると、隠し入力を追加します。私の問題は、select Plugin Listenerがkeydown listenerの前に起こっていることです。私の最初のon()
を私の2番目のon()
の前に実行させる方法はありますか?シフトキーが押されている場合は、2番目のon()
の内部をチェックする方法はありますか?私がon()
の中に入れた場合、e.shiftKey
は私にundefined
を与えます。アイデアありがとう!機能の実行中にシフトキーが押されていないか確認してください。
var shiftHeld = false;
$(document).on('keydown', function(e) {
if(e.which == 13) {
shiftHeld = e.shiftKey;
}
});
$menu = $('#menu').select2();
$menu.on('select2:close', function (e) {
if(shiftHeld) { $('#form').append('<input type="hidden" name="shift" value="1" />'); }
form.submit();
});
私はあなたがshiftHeldをfalseに設定できるように、キーアップハンドラが必要だと思います。あなたの現在のロジックでは、shiftHeldは一度押されるとすぐに真です。そのままで – Huangism
@Huangismありがとう!以下の投稿に私のコメントを参照してください。 – SeaBass