Wie kann ich das Drücken der Eingabetaste auf der Tastatur mit jQuery erkennen?

Lesezeit: 3 Minuten

Benutzer-Avatar
Chris

Ich möchte erkennen, ob der Benutzer gedrückt hat Eingeben mit jQuery.

Wie ist das möglich? Braucht es ein Plugin?

Es sieht so aus, als müsste ich die verwenden keypress() Methode.

Gibt es Browserprobleme mit diesem Befehl – wie gibt es Browserkompatibilitätsprobleme, über die ich Bescheid wissen sollte?

  • Link dazu .keypress() | jQuery-API-Dokumentation

    – Haim Jewgi

    11. Juni 2009 um 6:43 Uhr


  • Eines der besten Dinge an Javascript-Frameworks ist, dass sie standardmäßig Cross-Browser-kompatibel sein sollten. Sie führen die Browser-Kompatibilitätsprüfungen durch, damit der Benutzer dies nicht tun muss. Ich habe den JQuery-Quellcode nicht gelesen, aber ich bezweifle, dass die Tastendruckfunktionalität in diesem Sinne anders ist.

    – Miek

    11. Juni 2009 um 6:54 Uhr

  • Das einzige Problem mit der Browserkompatibilität besteht darin, dass Sie e.which anstelle von e.keyCode verwenden sollten, um den ASCII-Code zu erkennen.

    – Daniel

    19. Januar 2012 um 18:54 Uhr

  • stackoverflow.com/questions/302122/…

    – Lemo

    11. Juli 2012 um 11:07 Uhr

Benutzer-Avatar
Gibolt

Benutzen event.key und modernes JavaScript!

$(document).keypress(function(event) {
    if (event.key === "Enter") {
        // Do something
    }
});

Oder ohne jQuery:

document.addEventListener("keypress", function onEvent(event) {
    if (event.key === "Enter") {
        // Do something better
    }
});

Mozilla-Dokumentation

Unterstützte Browser

  • Das funktioniert bei mir nicht (ich habe #input auf der <input> Feld)

    – Rápli András

    10. November 2013 um 12:52 Uhr

  • Was ist, wenn #Eingabeelement dynamisch sein wird?

    – Jigar7521

    23. November 2016 um 9:37 Uhr

  • @mplungjan nicht sicher, was du mit “delegieren” meinst

    – Andreas

    8. November 2019 um 12:52 Uhr

  • $("#input").on("someevent","someselector",function () {})

    – mplungjan

    8. November 2019 um 13:03 Uhr

Benutzer-Avatar
Zeinab_Ns

Als die keypress -Ereignis durch keine offizielle Spezifikation abgedeckt ist, kann das tatsächliche Verhalten, das bei seiner Verwendung auftritt, je nach Browser, Browserversion und Plattform unterschiedlich sein.

$(document).keydown(function(event) {
  if (event.keyCode || event.which === 13) {
    // Cancel the default action, if needed
    event.preventDefault();
    // Call function, trigger events and everything you want to do. Example: Trigger the button element with a click
    $("#btn").trigger('click');
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<button id="btn" onclick="console.log('Button Pressed.')">&nbsp</button>

  • Zu beachten, warum keypress nicht (mehr) in der Spezifikation ist, dass es veraltet ist (MDN).

    – YellowAfterlife

    14. Dezember 2019 um 11:09 Uhr

Benutzer-Avatar
Peter Mortensen

Sie können dies mit dem jQuery-Event-Handler „keydown“ tun:

$("#start").on( "keydown", function(event) {
  if(event.which == 13)
     alert("Entered!");
});

  • Zu beachten, warum keypress nicht (mehr) in der Spezifikation ist, dass es veraltet ist (MDN).

    – YellowAfterlife

    14. Dezember 2019 um 11:09 Uhr

Benutzer-Avatar
Peter Mortensen

So habe ich es gelöst. Du solltest benutzen return false;

$(document).on('keypress', function(e) {
    if(e.which == 13) {
        $('#sub_btn').trigger('click');
        alert('You pressed the "Enter" key somewhere');
        return false;
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<form action="" method="post" id="sub_email_form">
    <div class="modal-header">
        <button type="button" class="close" id="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Subscribe to our Technical Analysis</h4>
    </div>
    <div class="modal-body">
        <p>Signup for our regular Technical Analysis updates to review recommendations delivered directly in your inbox.</p>
        <div class="input-group">
            <input type="email" name="sub_email" id="sub_email" class="form-control" placeholder="Enter your email" required>
        </div>
        <span id="save-error"></span>
    </div>
    <div class="modal-footer">
        <div class="input-group-append">
            <input type="submit" class="btn btn-primary sub_btn" id="sub_btn" name="sub_btn" value="Subscribe">
        </div>
    </div>
</form>

1010600cookie-checkWie kann ich das Drücken der Eingabetaste auf der Tastatur mit jQuery erkennen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy