This article describes an All-In-One framework sample that is available for download. This code sample demonstrates a step-by-step guide that illustrates how to build a virtual keyboard in your HTML page. You can get the sample packages from the following download icons.
Difficulty level

Download information
Technical overview
Sometimes when users try to enter their passwords to access to a website, they may want to use a virtual keyboard instead of a real keyboard to protect the passwords from some kind of back-door software (for example, a Key-logger).
To create a virtual keyboard, you need to add several buttons to a page. When users click a certain button, the JavaScript function that handles the onclick event will input an appropriated character to a text box. However, to substitute for the real keyboard completely by using a virtual keyboard, you need more advanced logic to implement features for some special keys (for example, the Caps Lock and the Shiftkeys).
Sample overview
This sample contains an HTML page without any behind code. When you open the Default.htm page by using Microsoft Visual Studio, you can find the following two main parts:
- JavaScript functions
- HTML code for page layout and some input controls
To build a demo page, follow these steps:
Step 1
Add an HTML text box to the page:
<input id="tbInput" type="text" />
Step 2
Add an HTML div to a blank page and insert several input buttons into the div. Ten of these buttons stand for number 0 to number 9 and the last button stands for the Backspace button. Set the onclick events of the ten number buttons to input() function, and then set the parameter of the input() function to this. Additionally, set the onclick event of the Backspace button to del() function.
<div id="VirtualKey"> <input id="btn1" type="button" onclick="input(this);" /> <input id="btn2" type="button" onclick="input(this);" /> <input id="btn3" type="button" onclick="input(this);" /> <br /> <input id="btn4" type="button" onclick="input(this);" /> <input id="btn5" type="button" onclick="input(this);" /> <input id="btn6" type="button" onclick="input(this);" /> <br /> <input id="btn7" type="button" onclick="input(this);" /> <input id="btn8" type="button" onclick="input(this);" /> <input id="btn9" type="button" onclick="input(this);" /> <br /> <input id="btn0" type="button" onclick="input(this)" /> <input id="btnDel" type="button" value="Backspace" onclick="del();" /> </div>
Step 3
Create the input(e) and del() JavaScript functions on the page. The input(e) function enters the number into the text box by using the parameter e. The del() function deletes a number from the text box.
function input(e) { var tbInput = document.getElementById("tbInput”); tbInput.value = tbInput.value + e.value; } function del() { var tbInput = document.getElementById("tbInput"); tbInput.value = tbInput.value.substr(0, tbInput.value.length - 1); }
Note You can run the page and input a number to the text box by clicking the button from the virtual number keyboard. This sample code also provides a feature to rearrange the order of these ten buttons. Therefore, when users refresh the page, they will get the virtual keyboard in a random arrangement. To achieve this feature, run the code that is described in Step 4.
Step 4
Set the onload event of the page to load() function:
Then, rearrange the order of the buttons:
<body onload="load();">Then, rearrange the order of the buttons:
function load() { var array = new Array(); while (array.length < 10) { var temp = Math.round(Math.random() * 9); if (!contain(array, temp)) { array.push(temp); } } for (i = 0; i < 10; i++) { var btn = document.getElementById("btn" + i); btn.value = array[i]; } }
Note For more information about how to change the order of the number buttons, see the Default.htm file that is included in the download package.
Technology category
HTML, JavaScript
Languages
This code sample is available in the following programming languages:
Language | Project Name |
---|---|
HTML and JavaScript | JSVirtualKeyboard |
References
For more information how to use JavaScript along with ASP.NET, visit the following MSDN website: