jQueryのkeyup、keydown、またはkeypressメソッドは、バックスペースキーが押されたときに起動されます。バックスペースキーの押下をどのようにトラップするのですか?jQueryを使用してバックスペースキーをトラップする方法は?
答えて
はこれを試してみてください。 バックスペースは入力要素でうまく動作するはずですが、フォーカスが段落などの場合は機能しません。ページが履歴の前のページに戻る傾向があるためです。
$('html').on('keydown' , function(event) {
if(! $(event.target).is('input')) {
console.log(event.which);
//event.preventDefault();
if(event.which == 8) {
// alert('backspace pressed');
return false;
}
}
});
false => event.preventDefaultとevent.stopPropagationの両方が有効です。
また、46(削除) – andufo
をチェックしますが、このようにモーダルウィンドウを表示して前のページに戻るのをやめることはできません。 –
e.preventDefault()を試してから、iffyを作成してください:) –
通常のjavascriptを使用して、バックスペースキーをトラップできます。 event.keyCodeメソッドを使用できます。あなたは(46)[削除]と同様に[バックスペース](8)のキーは、次の手順を使用し、両方をチェックしたい場合は
if (event.keyCode == 8) {
// Do stuff...
}
:コードは次のようになりますので、キーコードは、8です:上記と同じ考え方で作業
$('html').keyup(function(e){if(e.keyCode == 8)alert('backspace trapped')})
を、少しを一般:
if (event.keyCode == 8 || event.keyCode == 46) {
// Do stuff...
}
キーアップの代わりにキーダウンをupvote。 –
ほとんどのブラウザでバックスペースのデフォルトの動作は、前のページに戻ることです。 でない場合は、が必要です。この動作が必要な場合は、preventDefault()
というコールを確認する必要があります。しかし、OPに示唆されているように、いつもそれをpreventDefault()
と呼んでいると、テキストフィールド内のものを削除することも不可能になります。以下のコードは、this answerに適合した解決策を持っています。
また、ハードコードされたkeyCode値を使用するのではなく(一部の値は、ブラウザによって異なりますが、BackspaceまたはDeleteで真であるとは限りませんが)、jQuery has keyCode constantsが既に定義されています。これにより、コードをより読みやすくし、keyCodeの不一致を処理します。
// Bind keydown event to this function. Replace document with jQuery selector
// to only bind to that element.
$(document).keydown(function(e){
// Use jquery's constants rather than an unintuitive magic number.
// $.ui.keyCode.DELETE is also available. <- See how constants are better than '46'?
if (e.keyCode == $.ui.keyCode.BACKSPACE) {
// Filters out events coming from any of the following tags so Backspace
// will work when typing text, but not take the page back otherwise.
var rx = /INPUT|SELECT|TEXTAREA/i;
if(!rx.test(e.target.tagName) || e.target.disabled || e.target.readOnly){
e.preventDefault();
}
// Add your code here.
}
});
これはほとんどのケースを処理しますが、ラジオやチェックボックスのような特定の入力タイプではSelectとSelectを元に戻したくないので、 'SELECT'を削除して' e.target.type'のテストを追加しました。これまでのところ、これらの入力タイプは 'var rxt =/radio | button | checkbox | image | reset | submit/i;'にあります。 – peater
- 1. MIBファイルを使用してLinuxのコマンドラインからトラップを送信する方法
- 2. 私はバックスペースキーを使用していたときにp5jsキャンバス上
- 3. javascriptでダブルキープレスをトラップする方法は?
- 4. バックスペースキーの使用fire ssjs
- 5. jqueryを使用してインラインスタイルを適用する方法は?
- 6. Javaのバックスペースキーを無視する方法はありますか?
- 7. トラップを使用してbashで関数を終了する
- 8. jquery mobileを使用してタブを作成する方法は?
- 9. noConflict()を使用してjQueryオブジェクトを定義する方法は?
- 10. jQueryを使用してフィールドを挿入する方法は?
- 11. Jqueryを使用してボトムをスクロールする方法は?
- 12. jqueryを使用して属性を変更する方法は?
- 13. Jqueryを使用してドラッグ&ドロップを実行する方法は?
- 14. jquery $ .parseXMLを使用してxmlを解析する方法は?
- 15. JQueryを使用してトグルボタンを作成する方法は?
- 16. jqueryを使用してコードを単純化する方法は?
- 17. jQueryを使用してAjax.ActionLinkを追加する方法は?
- 18. jqueryを使用してJSONを処理する方法は?
- 19. Jquery検索を使用してデータをプッシュする方法は?
- 20. jqueryを使用してテキストをクリップボードにコピーする方法は?
- 21. jQueryトラップ例外
- 22. Jquery "appendTo"を使用して属性を適用する方法
- 23. jQueryを使用してURLに移動する方法は?
- 24. JQuery-UIダイアログを使用してホームページにリダイレクトする方法は?
- 25. JQuery/Ajax-MVC2を使用してボタンクリックイベントとしてチェックボックスを使用する方法
- 26. トラップSIGCHLDを使用したbash restartサブプロセス?
- 27. トラップを使用して終了を確認しました
- 28. テキストボックスがバックスペースキーをフィルタリングしています
- 29. jQueryを使用してチェックボックスを数える方法は?
- 30. jqueryを使用して画像をスライドさせる方法は?
明確にするために、バックスペースキーが押されたときにトラップしてアクションを起こしたいと思います。私は、最後の文字がテキストボックスから削除されたときにページ上のいくつかのボタンの有効状態を変更しています。したがって、私はまだバックスペースキーが正常に動作するようにします。 – ChrisP
それは当てはまりません。これはkeyupとkeydownメソッドに現れます。キーを押すだけでは表示されません。 – Line
@RickSmith私は同意しません。あなたが言いたいのはJavaScriptで、OPはjQueryで質問しています。なぜ誰かがある方法や別の方法で答えを求めているのか、何らかの理由があります。 –