I want to launch the function test()
if the user inputs something in the html input field with the id="sc1dc1"
(without using the "onchange="
directly in HTML). What is wrong?
HTML:
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <input type="text" id="sc1dc1" > </body> </html>
Javascript:
var x = document.getElementById("sc1dc1").value; x.onchange = test; function test(){alert("Test")};
Advertisement
Answer
The thing about onchange
events is that they only fire when the <input>
field loses focus. If you want an immediate response, you should use oninput
like so:
x.oninput = test;
You also need to make x
equal to the actual element, not the value of the element. Removing:
.value
From this line:
var x = document.getElementById("sc1dc1").value;
Will fix it.
Demonstration with onchange
:
var x = document.getElementById("sc1dc1"); x.onchange = test; function test() { alert("Test") };
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <input type="text" id="sc1dc1"> </body> </html>
Demonstration with oninput
:
var x = document.getElementById("sc1dc1"); x.oninput = test; function test() { alert("Test") };
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <input type="text" id="sc1dc1"> </body> </html>