2016-12-05 1 views
-1

Ich implementiere Funktionalität, wo ich Adressen bekommen kann, wenn ich nur Postleitzahl eingeben. Normalerweise, wenn ich auf den nächsten Knopf klicke, erhalte ich eine Liste von Adressen. Eigentlich möchte ich auch Enter-Taste Funktionalität implementieren, wo der Benutzer Postleitzahl in das Textfeld eingeben und drücken Sie die Eingabetaste und er wird Liste der Adressen angezeigt werden.Warum kann ich die Umleitung nicht verhindern, wenn ich programmgesteuert auf dieselbe Schaltfläche klicke?

Hier ist mein Code:

$('#nxt-button').click(function(event){ 
    event.preventDefault(); 
// ajax call for getting all addresses related to entered post code 
return false; 
}); 

// Button-Funktionalität

$("#post-code-textfield").keyup(function(event){ 
     if(event.keyCode == 13){ 
      $("#nxt-button").click(); 
      event.preventDefault(); 
      return false; 
     } 
     }); 

Jetzt ist das Problem Geben Sie besteht darin, dass, wenn ich drücken, um direkt neben Taste, prevent funktioniert, aber wenn ich Taste drücken eingeben, die Seite wird auf der nächsten Seite umgeleitet.

Bitte helfen Sie mir.

+2

Können Sie HTML teilen? – Satpal

+0

Ändern Sie das Keyup-Ereignis in das Keydown-Ereignis, da das Ereignis bereits stattfindet, wenn die Tastenbetätigung ausgelöst wird. – Enijar

+3

Ich nehme an, dass Ihr Eingabefeld in einem Formular ist und drücken Sie Enter, um das Formular zu senden. Sie müssen verhindern, dass das Formular gesendet wird. Veröffentlichen Sie Ihr Markup, um Hilfe zu erhalten – anu

Antwort

1

Versuchen keypress Ereignis

$("#post-code-textfield").keypress(function(event){ 
     if(event.keyCode == 13){ 
      $("#nxt-button").click(); 
      event.preventDefault(); 
      return false; 
     } 
     }); 
+1

Es wäre viel besser [die Formularübergabe zu verhindern] (http://stackoverflow.com/a/40971450/542251), dann könnten Sie beide Probleme auf einmal beheben – Liam

1

Ich nehme an, dass das Feld in einem Formular ist und wenn Sie Ihre Form drücken eingeben es ist submitting.All Sie brauchen form zu verhindern einreichen:

$('form').submit(function(event){ 
     event.preventDefault(); 
}); 

Um das Einreichen von Formularen zu verhindern, sollte return false auch funktionieren.

+0

einige Erklärung wäre hilfreich ? Dies ist jedoch das Problem. Geben Sie das Formular ein, es wird nicht auf die Schaltfläche gedrückt – Liam

0

Wenn Ihre Schaltfläche href attr aufweist, entfernen Sie sie und führen Sie die Umleitung direkt in click Listener aus.

Verwandte Themen