2014-11-15 22 views
23

Gibt es eine Möglichkeit, ich kann eine konstante Funktion erstellen, die auf einen Eingang hört, wenn also dieser Eingabewert ändert, wird sofort etwas ausgelöst?Pure Javascript hören Eingabewert ändern

Ich bin auf der Suche nach etwas mit reinem Javascript, keine Plugins, keine Frameworks und ich kann das HTML nicht bearbeiten.

Etwas, zum Beispiel:

Wenn ich den Wert in der Eingabe 'MyObject' zu ändern, läuft diese Funktion.

Irgendwelche Hilfe?

Antwort

30

Dies ist, was events sind für.

HTMLInputElementObject.addEventListener('input', function (evt) { 
    something(this.value); 
}); 
+0

Ich versuchte dies, aber aus irgendeinem Grund hat es nicht funktioniert. Ich habe meine Frage aktualisiert, um sie klarer zu machen. – gespinha

+0

@GEspinha - Dies ist immer noch der Weg, es zu tun. Was sagt die JavaScript-Fehlerkonsole? Wie ändern Sie den Wert? – Quentin

+0

Funktioniert nicht, wenn der Eingabewert von Javascript geändert wird – ImShogun

13

Als einfaches Beispiel ...

HTML:

<input type="text" name="Thing" value="" /> 

Script:

/* event listener */ 
document.getElementsByName("Thing")[0].addEventListener('change', doThing); 

/* function */ 
function doThing(){ 
    alert('Horray! Someone wrote "' + this.value + '"!'); 
} 

Hier ist eine Geige: http://jsfiddle.net/Niffler/514gg4tk/

+0

Ich kann den HTML-Code nicht ändern Ich habe meine Frage aktualisiert, um sie klarer zu machen – gespinha

+0

Entschuldigung, ich muss diesen Teil verpasst haben Meine Antwort aktualisiert – Niffler

+1

Funktioniert nicht Verwenden Sie das Ereignis "input". – Chris

0

Ticked Antwort ist genau richtig , aber die Antwort kann sein:

HTMLInputElementObject.oninput = function() { 
    console.log(this); // Do something 
} 
Verwandte Themen