2017-08-24 1 views
-1

を入力します変更するには、JavaScriptでの方法があります:は+ Shiftキーこれは私が試したと明らかに失敗したものです

   ed.on('keyup', function(e){ 
        console.log(e.keyCode) 
        if(e.keyCode == 13 && !e.shiftKey){ 
         e.shiftKey = true; 
         e.keyCode = 13; 
         $(this).trigger(e); 
        } 
        else if (e.keyCode == 13 && e.shiftKey){ 
         e.shiftKey = false; 
         e.keyCode = 13; 
         $(this).trigger(e); 
        } 
       }); 

は私は私は考えて見て何に基づいて、この原因を行う方法はあります右のトラックにあり、早い段階で早送りすることはほとんどありません。

また、私は代わりに「キー押し」を使ってみましたが、それには幸運はありませんでした。

+0

それが働いていたとしても、それだけでshiftKey呼び出しとして、無限ループではないでしょう!呼び出すshiftKeyを呼び出しshiftKey、、!shiftKey ... –

+2

は 'shiftKey'があります読み取り専用のプロパティなので、変更することはできません:https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/shiftKey –

+0

それをしないでください。 a) 'preventDefault'を実行し、カーソル位置に改行を挿入するか、(より簡単で簡単に)b)' 'の代わりに ''を使用してください。 – Bergi

答えて

1

Enterキーを押したままにすると、EnterキーとShiftキーを使用してキーダウンが開始されます。

$('input').on('keydown', function(event) { 
 
    if (event.keyCode == 13 && !event.shiftKey) { 
 
    $(this).trigger(jQuery.Event("keydown", { 
 
     keyCode: 13, // ENTER 
 
     shiftKey: true 
 
    })); 
 
    } else if (event.keyCode == 13 && event.shiftKey) { 
 
    console.log('shift + enter'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input/>

+0

doesntの作業:( コードdoesntの作業のこの部分 '$(この).trigger(jQuery.Event( "のKeyDown"、{ のkeyCode:13、// shiftKey ENTER:真 を}));'。 トリガーイベントが発生していません –

+0

私が投稿したソリューションは、自分のコンピュータにインストールされているすべてのブラウザで動作するため、私はあなたにはあまり手伝っていません。[fiddle] /www.jsfiddle.net)? –

関連する問題