2010-12-31 17 views
0

Ich habe ein Ajax-Suchformular, das funktioniert gut, wenn Sie auf "Senden" klicken, in dem Sie eine Postleitzahl eingeben, klicken Sie auf die Schaltfläche "Enter" und oben erscheint sofort Ergebnisse. Ich versuche es so zu machen, dass, wenn der Benutzer "Enter" auf der Tastatur drückt, es den gleichen Effekt hat. Es sieht aus wie es einreichen, aber keine Ergebnisse kommen ...jquery - "Klick" auf Tastendruck?

Ich habe versucht:

if($('#search').length) { 
     $('#zipcode').keyup(function(e) { 
      if(e.keyCode == 13) { 
     e.preventDefault(); 
      $('#search').submit(); 
      } 
     }); 
    } 
+0

Sie sollten Javascript dafür nicht benötigen. Browser tun dies normalerweise automatisch –

Antwort

2

Sie sollten nicht einen Klick auf „fake“ haben. Stellen Sie sicher, dass Ihre "Enter" -Taste ist entweder:

<input type="submit"> 

Oder

<button type="submit"> 

Und es sollte das Formular auf der Enter-Taste. Das andere potenzielle Problem besteht darin, dass der Ajax-Code an das click -Ereignis der Schaltfläche gebunden ist und nicht an das Sendeereignis des Formulars.

$('button').click(...); // is wrong 
$('form').submit(...); // is right 
1

Verwenden .click() ohne Parameter

+1

Wie hilft das? Es funktioniert bereits, wenn Sie auf die Schaltfläche klicken. Ich möchte, dass es funktioniert, wenn ein Benutzer auf der Tastatur die Eingabetaste drückt ... Wie funktioniert das Verwenden von "Klick"? – WonderBugger

+0

Richtig ... Sie möchten einen Klick simulieren ... So, wie Sie Ihren Listener mit if (event.keycode == 13) $ eingerichtet haben ('# submit') click(); Klickt auf den Absenden-Button. Ist das nicht das, was du fragst? – sethvargo

+0

Er schlägt vor, dass Sie ein Click-Ereignis selbst aufrufen, indem Sie etwas wie $ ('# submitButton') ausführen. Click(); '. – Chris