2017-10-28 2 views
0

Ich versuche js zu erkennen, was in einem Eingabefeld zu machen, und wenn der Benutzer in einem Code eingegeben hat, wird etwas bisher geschieht Ich habe diesenWie mache ich js Dectect was in einem Eingabefeld eingegeben

function input() { 
 
    document.getElementById('hehe').value 
 
    if (value == "hello") { 
 
     window.alert("SOMETHING"); 
 
    } else { 
 
     window.alert("SOMETHING"); 
 
    } 
 
}
<input id="hehe" type="text" oninput="input()">

aber es aus irgendeinem Grund nicht funktioniert und ich kann nicht sehen, warum

+0

Sie das Ergebnis nicht von 'value' einer Variablen zuweisen. Ist das ein Tippfehler? –

Antwort

1

Sie den Wert speichern, bevor Sie es verwenden können. document.getElementById('hehe').value Gibt den Wert des Eingabetextfeldes zurück, aber in der nächsten Zeile verwenden Sie die nicht vorhandene Variable value.

ändern, nur um es zu:

function input() { 
    var value = document.getElementById('hehe').value 
    if (value == "hello") { 
     window.alert("SOMETHING"); 
    } else { 
     window.alert("SOMETHING"); 
    } 
} 

oder verwenden Sie es direkt:

function input() { 
    if (document.getElementById('hehe').value == "hello") { 
     window.alert("SOMETHING"); 
    } else { 
     window.alert("SOMETHING"); 
    } 
} 
0

Sie sind nicht das DOM-Element Wert einer Variablen zugewiesen. Sie schreiben sollte:

var value = document.getElementById('hehe').value; 

Oder mit jQuery:

var value = $('#hehe').val(); 

jedoch eine andere automatisierte Weise eingegebenen Text zu erfassen, mit KnockoutJS Bibliothek ist data-bind. Es synchronisiert automatisch das DOM-Element mit Ihrem nach dem Anwenden der Bindung an Ihre ModelView.

Hier ein Beispiel: (jsfiddle)

HTML:

<p>Name: <input data-bind="textInput: name"></p> 
<h1>The typed name is: <span data-bind="text: name"></span>.</h1> 

JavaScript:

ko.applyBindings({ 
    name: ko.observable("SOMETHING") 
}); 
Verwandte Themen