Reputation: 75
I'm very new in coding, so be patient please. I've made an array that looks like this:
var minArray = ["Hello", "Hi", "Yes", "No", "Good"];
function printit(number) {
document.getElementById('test').innerHTML = minArray[number];
}
<form name="f1">
<input type="text" value="" id="number" />
<input type="button" value="Word is:" onclick="printit(number)" />
</form>
<br/>
<div id="test" />
And I'd like to write in a number in the text field and then get that specific word from the array. So if I were to write 1 and then press print, the outcome would be: Hi.
Anyone that can nudge me in the right direction?
Upvotes: 3
Views: 103
Reputation: 74
Some code changes
<script>
var minArray = ["Hello", "Hi", "Yes", "No", "Good"];
function printit()
{
var number = document.getElementById("number").value;
document.getElementById("test").innerHTML =minArray[number];
}
</script>
<form name="f1">
<input type="text" value="" id="number"/>
<input type="button" value="Word is:" onclick="printit()"/>
</form>
</br>
<div id="test"/>
Upvotes: 0
Reputation: 6516
You can simply get value like this:
var valueOfArray = minArray[1];
or if you are going to store that writen value into a variable:
var valueOfArray = minArray[storedNumber];
then you can pass it to the html:
document.getElementById('test').innerHTML = valueOfArray;
Also is a good practice to insure that storedNumber is really a number, then parse it and check if is a number:
var minArray = ["Hello", "Hi", "Yes", "No", "Good"];
function printit() {
var storedNumber = document.getElementById('number').value;
storedNumber = parseInt(storedNumber);
if (!isNaN(storedNumber)){
var valueOfArray = minArray[storedNumber];
if (typeof valueOfArray != 'undefined'){
document.getElementById('test').innerHTML = valueOfArray;
}else{
document.getElementById('test').innerHTML= "Number is not valid";
}
}else{
document.getElementById('test').innerHTML= "NaN";
}
}
<form name="f1">
<input type="text" value="" id="number"/>
<input type="button" value="Word is:" onclick="printit()"/>
</form>
<br/>
<div id="test"/>
AND of course, adjust your array name when printing, you are using it as MyArray
, but the correct name is minArray
Upvotes: -1
Reputation: 12129
You are not getting the value of the input correctly. You have two options, both documented below.
To get the value of the input you need to do the following:
document.getElementById('number').value;
You also called your array myArray
and minArray
.
See full code example below.
var minArray = ["Hello", "Hi", "Yes", "No", "Good"];
function printit() {
const number = document.getElementById('number').value;
document.getElementById('test').innerHTML = minArray[number];
}
<form name="f1">
<input type="text" id="number" />
<input type="button" value="Word is:" onclick="printit()" />
</form>
</br>
<div id="test" />
You could also pass the event to the input onclick
function and get the value
from this. You will also have to convert the string to an integer using parseInt
.
var minArray = ["Hello", "Hi", "Yes", "No", "Good"];
function printit(event) {
document.getElementById('test').innerHTML = minArray[parseInt(number.value)];
}
<form name="f1">
<input type="text" id="number" />
<input type="button" value="Word is:" onclick="printit(event)" />
</form>
</br>
<div id="test" />
Upvotes: 6
Reputation: 880
var minArray = ["Hello", "Hi", "Yes", "No", "Good"];
function printit() {
var a=document.getElementById('number').value
document.getElementById('test').innerHTML = minArray[a-1];
}
<form name="f1">
<input type="text" value="" id="number"/>
<input type="button" value="Word is:" onclick="printit()"/>
</form>
<div id="test"></div>
Upvotes: 0
Reputation: 13669
var minArray = ["Hello", "Hi", "Yes", "No", "Good"];
function printit()
{
var index=parseInt(document.getElementById('number').value);
if(index>=minArray.length){
document.getElementById('test').innerHTML ="Not Found";
}
else{
document.getElementById('test').innerHTML = minArray[index];
}
}
<form name="f1">
<input type="text" value="" id="number"/>
<input type="button" value="Word is:" onclick="printit()"/>
</form>
<br/>
<div id="test"/>
Upvotes: 0
Reputation: 1369
Try below code.
HTML elements with ids are global variable. So you can directly refer to input box by using number
variable.
So in your code if you use number.value
it will give you value of input box.
var minArray = ["Hello", "Hi", "Yes", "No", "Good"];
function printit() {
document.getElementById('test').innerHTML = minArray[number.value];
}
<form name="f1">
<input type="text" value="" id="number" />
<input type="button" value="Word is:" onclick="printit(number)" />
</form>
<br/>
<div id="test" />
Upvotes: 0