2016-07-25 6 views
0

Ich implementiere die Adresse Autocomplete-Funktionalität in onkeyup() Ereignis der asp.net Textbox.Wie man einen Teil des Javascript-Codes durch ein Javascript-Ereignis hinzufügt und entfernt

Ich möchte, dass die Autocomplete-Funktion erst dann aktiviert wird, wenn der Benutzer mindestens 7 Zeichen eingegeben hat.

Es funktioniert zum ersten Mal. Sobald der Benutzer das Eingabefeld jedoch löscht, funktioniert die automatische Vervollständigung auch dann, wenn ein einzelnes Zeichen eingegeben wird.

Dies ist, weil der JavaScript-Code, der es implementiert, bereits da ist. Nach dem erneuten Laden der Seite funktioniert es wieder wie gewünscht.

Gibt es trotzdem, damit es funktioniert, ohne eine Seite neu zu laden.

Im Anschluss ist mein Code:

<asp:textbox id="txtAddressInput" runat="server" autocomplete="false" onkeyup="input_onchange(this)"></asp:textbox> 
<script> 
     function input_onchange(me) { 
       if (me.value.length > 7) { 
       autocomplete = new google.maps.places.Autocomplete(
       (document.getElementById('txtAddress')), 
       { types: ['geocode'] }); 
     } 
      google.maps.event.addDomListener(document.getElementById('txtAddress'), 'keydown', function (e) { 
       if (e.keyCode == 13 && $('.pac-container:visible').length) { 
        e.preventDefault(); 
       } 
     }); 
    } 
<script> 
+0

Sie wahrscheinlich so etwas wie http://stackoverflow.com/ tun müssen a/22862011/14104 – epascarello

+0

Danke. Das hat geholfen! – Massey

Antwort

0

auf Ihren Code Basierend es sieht aus wie Sie gerade eine else Anweisung Löschen des Objekts zur automatischen Vervollständigung benötigen. So etwas wie

else if (me.value.length < 7 && autocomplete != null) { 
    autocomplete = null; 
} 

Auch Ihre if-Anweisung wird mindestens 8 Zeichen erfordern, nicht 7 (Sie verwenden > statt >=)

+0

Versuchte das else wenn, aber nicht funktioniert. Vielen Dank – Massey

Verwandte Themen