これらのイベントを使用してフォーム入力を評価しようとしていますが、フォームがブラウザによって自動入力された場合、これらのイベントは発生しません。オートフィルでイベントを発生させるにはどうしたらいいですか?Jquery .keyup .keydown .keypressブラウザの自動入力を検出しない
答えて
残念ながら、ブラウザの自動入力を検出する方法はありません。代わりに、たとえば、元の値(または空)が入力値と一致するかどうかをチェックし、そのように応答をトリガーするかなり高い頻度で関数を実行するには、setInterval
を使用します。あなたがそれをしたくなければ、ブラウザは.change
をトリガーさえしないので、あなたはおそらくSOLです。そして、どのイベントもブラウザ間で互換性がない可能性が高いです。
また、妥当性検査イベントをフォーム送信時に実行させることもできますが、これも同様に有効です。
yea on submissionテクニックの問題は、コンテンツの検証に基づいて入力枠の色を変更しているため、変更されるたびにイベントが発生する必要があります –
.click()
イベントおよび/または.dblclick()
イベントにバインドすることで、希望の動作を少し偽装できます。
これは保証されていませんが、ボックスからオートコンプリートを選択して承認すると、余分なマウスクリックが発生する可能性があります。
私はそれがかなり古い質問だと知っていますが、私はe.preventDefault()を使って同じ問題をkeyup関数の後に解決しました。
$("#email").keyup(function (e) {
e.preventDefault();
このように、ブラウザの自動入力による候補を入力すると、このように表示されます。提案でマウスをクリックしても問題は残りますが、選択した後でいずれかのキーを押すと問題なく動作します。
FINAL私はstackoverflowの上で、この記事を見つけました
SOLUTION:https://stackoverflow.com/a/24746108/3481005
と.on使用して( "入力")は、トリックを行います!
$("#email").on("input",function (e) {
- 1. jQuery keypressイベント&ライブで検索入力が無効になる
- 2. ブラウザの自動入力
- 3. keypressとkeyupの組み合わせ - jQuery
- 4. ブラウザ自動入力機能がJSイベントをトリガーしない
- 5. javascript event.keyCodeは、FireFox 3.6.25のkeydown、keypress、keyupイベントでは機能しません。
- 6. KeyDown/KeyPress and Indexing
- 7. バックボーン・ビューでは、keypress/keyup/keydownイベントは入力だけで動作し、他の要素では動作しませんか?
- 8. 自動入力フォームのjQuery機能?
- 9. 時間入力のテキスト入力keyupイベント
- 10. jQueryのkeyUpイベント - 見えない第二の入力
- 11. jQuery - keyPress()、keyUp()が2秒間機能する()
- 12. jqueryの自動入力
- 13. KeyPressイベントブロックDataGridViewのKeyUpイベント.net
- 14. jqueryのkeyup、keypress、およびonblurイベントを結合します。
- 15. jQueryと入力keydownイベントでの問題
- 16. keyup以上の入力フォーム
- 17. 特定のキーのkeydown + keyupイベント
- 18. なぜjQuery e.whichは入力キーを検出できないのですか?
- 19. jQueryブラウザの検出?
- 20. Javascriptでkeypressコンビネーションシリーズを検出
- 21. jQueryの検証入力
- 22. YouTube APIの検索自動入力
- 23. テキストエリアの入力を検出し、divをリフレッシュから停止します。JQUERY
- 24. jquery IE 8で入力の検証を検証しない
- 25. Javascript:prevent keyUp event
- 26. 入力keypressのノックアウトイベントバインドで奇妙な動作が発生する
- 27. 自動入力 - ドロプボックス
- 28. 入力またはテキストエリアの入力時にjquery keypressを無効にする
- 29. KeyDownでのバックスペースの検出
- 30. jQuery 1.6ブラウザの検出
私はこれまでにこれを研究しましたが、できるとは思わないが、ブラウザの自動入力のイベントはありません。しかし、どんな答えにも興味があります:) –
何をやっているのか正確に分からないと、 '.change()'イベントハンドラも追加できますか?私は正直なところ、たとえそのイベントがブラウザの自動入力でも発生するかどうかはわかりません。 – jaredhoyt
私はJaredが提案したように '.change()'を試してみましたが、うまくいかない場合は '.blur()'を使わなければならないかもしれません。 – nnnnnn