2016-06-30 9 views
0

Unten ist mein Code, das Problem mit dem Code ist Ich versuche, die Enter-Taste zu arbeiten, wenn das Hauptelement "Newsletter-Zeichen -up "enthält Daten, indem ein Ereignis-Listener hinzugefügt wird. Das Problem ist, dass diese "Newsletter-Anmeldung" auf der Basisseite vorhanden ist, aber auch in einem zufällig erscheinenden "Modal" vorkommen kann. Mir wurde gesagt, dass ich die gleiche "Id" verwenden kann, indem ich die .closes jquery benutze ... aber mein Code erhält immer einen Fehler. AddEventListener ist keine Funktion. Hier ist der Code:Wie bekomme ich das nächste Element im DOM und fügen Sie einen Event-Listener zu

// ============ Key Press Event auf den Gesunde Tipps E-Newsletter ================= =====

$(function() { 
    $('#sign-up-submit').closest('form').findByName("newsletter-sign-up") 
    // document.getElementById("newsletter-sign-up") 
    .addEventListener("keypress", function (event) {   
      if (event.keyCode == 13) { 
       event.preventDefault(); 
       document.getElementById("sign-up-submit").click(); 
      } 
     }); 
}); 

Antwort

0

Da es in einem modalen Popup erscheint (was bedeutet, dass Sie nicht wissen, wo es in dem DOM platziert werden), müssen Sie das Ereignis delegieren.

etwas wie die folgenden sollte es tun

$(function() { 
    $(document).on('keypress', '#newsletter-sign-up', function (event) {   
     if (event.keyCode == 13) { 
      event.preventDefault(); 
      $("#sign-up-submit").click(); 
     } 
    }); 
}); 
+0

Danke wird die Enter-Taste funktioniert, aber das Textfeld Wert nicht gefunden. Danke, ich weiß es zu schätzen. –

Verwandte Themen