I want my input box to detect a text like this...
var input = document.getElemntById("inputbox");
function buttonclick() {
if ((input = "h")) {
input.innerHTML = "hello";
}
}
This is by button click but i need to do this onkeyup()
but I don't know how to..
if the user type h
the input box suddenly make it hello
how do I do this?
Thanks in advance.
CodePudding user response:
You really just need an onkeyup
event on your html tag.
var input = document.getElementById("inputbox");
function buttonclick() {
if (input.value === "h") {
input.value = "hello";
}
}
<input id="inputbox" onkeyup="buttonclick()">
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>
When the key is lifted the function buttonclick()
is called. You also need to grab the value
of the input as the innerHTML does not refer to what is placed within the input box but rather the actual code that would be between lets say two <div> </div>
tags.
CodePudding user response:
Add a eventListener:
document.getElementById("inputbox").addEventListener("keyup", (e) => {
if (e.target.value == "h") e.target.value = "hello"
}
CodePudding user response:
You have to do following changes to work:
1) TYPO
: You should use getElementById
instead of getElemntById
var input = document.getElementById("inputbox");
2) You can use keyup
event as
input.addEventListener( "keyup", changeInputValue )
3) When you are checking equality of two string, use ===
. =
is for assignment.
input.value.trim() === "h"
4) You have to compare the value
of the input
with h
.
input.value.trim() === "h"
NOTE:
I've usedtrim
method because if user added some space beforeh
then it will still sethello
. You can remove it if you don't want.
var input = document.getElementById("inputbox");
function changeInputValue() {
if (input.value.trim() === "h") { // input.value === "h"
input.value = "hello";
}
}
input.addEventListener("keyup", changeInputValue)
<input type="text" id="inputbox" />
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>