2014-11-15 13 views
23

Czy istnieje sposób, w jaki mogę utworzyć stałą funkcję, która nasłuchuje na wejście, więc kiedy ta wartość wejściowa ulegnie zmianie, coś zostanie natychmiast wyzwolone?Czysty JavaScript słuchać zmiany wartości wejściowej

Szukam czegoś za pomocą czystego javascript, bez wtyczek, bez frameworków i nie mogę edytować kodu HTML.

Coś, na przykład:

Kiedy zmienić wartość na wejściu „MyObject”, ta funkcja działa.

Każda pomoc?

Odpowiedz

30

Do tego służą events.

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

Próbowałem tego, ale z jakiegoś powodu nie działało. Zaktualizowałem moje pytanie, aby było bardziej zrozumiałe. – gespinha

+0

@Gspinha - To wciąż jest sposób na zrobienie tego. Co mówi blokada błędów JavaScript? Jak zmieniasz wartość? – Quentin

+0

Nie działałaby, gdyby wartość wejściowa została zmieniona przez javascript – ImShogun

13

Jako podstawowy przykład ...

HTML:

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

Scenariusz:

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

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

Oto skrzypce: http://jsfiddle.net/Niffler/514gg4tk/

+0

Nie mogę zmienić kodu HTML. Zaktualizowałem moje pytanie, aby było bardziej zrozumiałe – gespinha

+0

Przepraszamy, musiało minąć tę część .. Zaktualizowałem moją odpowiedź – Niffler

+1

Nie działa. Użyj zdarzenia 'input'. – Chris

0

Spełniło Odpowiedź jest dokładnie prawo , ale odpowiedź może być:

HTMLInputElementObject.oninput = function() { 
    console.log(this); // Do something 
} 
Powiązane problemy