2016-04-02 12 views
1

meinen einfachen HTML-Datei CodeJavascript onKeyUp Zustand nicht funktioniert, wenn die Geschwindigkeit der Eingabe

Site Name: <input id="name" type="text" onkeyup="myFunction1(event,this)"> 
URL  : <input id="url" type="text"> 

JavaScript-Code

function myFunction1(event,t){ 
    var nameval= document.getElementById("name").value; 
    var urlval= document.getElementById("url").value; 
    var namelen = nameval.length; 
    var urllen = urlval.length; 
    var res = nameval.substring(1, namelen); 

    if(res.length == urllen){ 
      document.getElementById("url").value = t.value; 
    } 
    else{ 
      alert("string lengths are not matching"); 
    } 
} 

, was ich tun soll, wenn Name des Benutzertyp Site in Textbox, derselbe Text reflektieren sollte URL-Textfeld, wenn Name- und URL-Textfelder dieselbe Textlänge haben. aber wenn ich den Site-Namen beschleunige, scheitert meine if-Bedingung nach der Eingabe von wenigen Zeichen und es geht in den else-Block. Ich weiß nicht, warum das passiert. Kann mir jemand helfen, diesen Code zu verbessern?

+1

Sie müssen #name nicht anfordern, wenn Sie die Referenz bereits als t im Parameter gesendet haben. Außerdem liegt der Fehler an der Art des Ereignisses (keyup). Manchmal, wenn Sie schnell tippen, treffen Sie den nächsten Buchstaben, ohne den vorherigen Tastenanschlag loszulassen. – Vector

+0

also welche Art von Lösung, die ich anwenden kann – paul

Antwort

1

Verwenden Sie die onkeyup Ereignis ist nicht Ihre beste Option für das, was Sie versuchen zu tun. Sie können stattdessen das Ereignis oninput verwenden. Hier ist der geänderte HTML-Code:

+0

danke für die Antwort, aber es hat nicht funktioniert. – paul

+0

Sind Sie sicher? Ich lege alle Dateien in jsfiddle und es funktioniert: https://jsfiddle.net/ckzkgjjn/ – Energyxxer

Verwandte Themen