openjs.comのショートカット処理(1)を使用して、htmlフォームのEnterキーを無効にしています。ただし、これらのフォームのtextareas内で、Enterキーを押して通常のCR-LFペアを発行します(これはユーザーが期待しているためです)。
現時点では、次のようなフォーム/入力構造があると仮定しています。
<form id="f1">
<fieldset>
<input>
<textarea id="f2"> ...
次のスクリプトが実行されます。
shortcut.add('Return', function () { /*empty*/ },
{ 'type':'keydown', 'disable_in_input':false,'propagate':true,
'target':document.getElementById('f1')});"
これにより、Enterキーが事実上無効になります。
次のコードを使用して、textareaで再度有効にしてみました。
shortcut.add(\"Enter\", function() { }, {'type':'keydown','propagate':false,
'disable_in_input':false, 'target':document.getElementById('f2') } );
しかし、それは機能しません。このイベントの伝播の順序は何ですか?テキストエリアからバブルアップする必要がありますか、それともフォーム要素からバブルダウンする必要がありますか?