I'm wondering if there is a way to use a JavaScript onChange event to change the SRC for an image based on a number typed in a textbox on a form. For example, if the user types a number beginning with the number 3, I'd like to SRC to point to one image, but if the user types a number beginning with the number 4, I'd like the SRC to point to a different image, and I'd like other SRC changes when the user types a number beginning with 5, or a number beginning with 6.
Thanks in advance!
Below I have provided a fully commented example of how this can be done.
html
<input id="myid" type="text">
<img id="myimg" src="http://dummyimage.com/100x100/000/fff">
javascript
window.onload = function() { // because we are grabbing DOM elements we need to ensure the elements are first loaded.
var elm = document.getElementById("myid"),
img = document.getElementById("myimg"); // here we grab the input box and the image
elm.onkeyup = function(event) { // capture the input keyup
if (this.value.length === 1) { // make sure we are only checking the first value
switch (event.keyCode) { // here we are running the switch statement against the keyup event keycode value
case (48):
img.src = "http://dummyimage.com/100x100/000/fff&text=0";
break;
case (49):
img.src = "http://dummyimage.com/100x100/000/fff&text=1";
break;
case (50):
img.src = "http://dummyimage.com/100x100/000/fff&text=2";
break;
case (51):
img.src = "http://dummyimage.com/100x100/000/fff&text=3";
break;
case (52):
img.src = "http://dummyimage.com/100x100/000/fff&text=4";
break;
case (53):
img.src = "http://dummyimage.com/100x100/000/fff&text=5";
break;
case (54):
img.src = "http://dummyimage.com/100x100/000/fff&text=6";
break;
case (55):
img.src = "http://dummyimage.com/100x100/000/fff&text=7";
break;
case (56):
img.src = "http://dummyimage.com/100x100/000/fff&text=8";
break;
case (57):
img.src = "http://dummyimage.com/100x100/000/fff&text=9";
break;
}
}
}
}
Thanks, all for your help.
:)
Here is the final solution I developed. I used an onkeyup event, as it was better suited to my needs. The HTML I used:
<form name="AddCardToAccount" id="AddCardToAccount" action="" method="post">
<img id="imgCC" name="imgCC" class="imgCC" src="/includes/sci/images/imgNoCC_.gif">
<input type="text" name="cardNumber" id="cardNumber" size="31" onkeyup="handleKeypress(this,event);">
I added some case numbers to cover the numbers of the key pad, in addition to the numbers of the keyboard. Here is the JavaScript I used:
function handleKeypress(inCardNumber,e) {
var inCardNumber = document.AddCardToAccount.cardNumber;
var imgToSwap = document.AddCardToAccount.imgCC;
var charCode;
if(e && e.which){
charCode = e.which; // For Firefox
}
else if(window.event){
e = window.event;
charCode = e.keyCode; // For IE
}
if (inCardNumber.value.length === 1) {
switch (charCode) {
case (48):
imgToSwap.src = "includes/sci/images/imgNoCC_.gif";
break;
case (49):
imgToSwap.src = "includes/sci/images/imgNoCC_.gif";
break;
case (50):
imgToSwap.src = "includes/sci/images/imgNoCC_.gif";
break;
case (51):
imgToSwap.src = "includes/sci/images/imgAmexCC_.gif";
break;
case (52):
imgToSwap.src = "includes/sci/images/imgVisaCC_.gif";
break;
case (53):
imgToSwap.src = "includes/sci/images/imgMcCC_.gif";
break;
case (54):
imgToSwap.src = "includes/sci/images/imgDiscCC_.gif";
break;
case (55):
imgToSwap.src = "includes/sci/images/imgNoCC_.gif";
break;
case (56):
imgToSwap.src = "includes/sci/images/imgNoCC_.gif";
break;
case (57):
imgToSwap.src = "includes/sci/images/imgNoCC_.gif";
break;
case (96):
imgToSwap.src = "includes/sci/images/imgNoCC_.gif";
break;
case (97):
imgToSwap.src = "includes/sci/images/imgNoCC_.gif";
break;
case (98):
imgToSwap.src = "includes/sci/images/imgNoCC_.gif";
break;
case (99):
imgToSwap.src = "includes/sci/images/imgAmexCC_.gif";
break;
case (100):
imgToSwap.src = "includes/sci/images/imgVisaCC_.gif";
break;
case (101):
imgToSwap.src = "includes/sci/images/imgMcCC_.gif";
break;
case (102):
imgToSwap.src = "includes/sci/images/imgDiscCC_.gif";
break;
case (103):
imgToSwap.src = "includes/sci/images/imgNoCC_.gif";
break;
case (104):
imgToSwap.src = "includes/sci/images/imgNoCC_.gif";
break;
case (105):
imgToSwap.src = "includes/sci/images/imgNoCC_.gif";
break;
}
}
}