javascript实现数字随机软键盘

来源:互联网 发布:change软件 编辑:程序博客网 时间:2024/05/08 16:14

新建一个softkeyboard.aspx

[html] view plaincopyprint?
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="softkeyboard.aspx.cs" Inherits="softkeyboard" %>  
  2.   
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  4.   
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head runat="server">  
  7.     <title>随机数字软键盘</title>  
  8. <script>  
  9.     window.onload = function () {  
  10.         password1 = null;  
  11.         initCalc();  
  12.     }  
  13.     var password1;  
  14.     var checkSoftKey;  
  15.   
  16.     function addValue(newValue) {  
  17.         var str = Calc.password.value;  
  18.         if (str.length < password1.maxLength) {  
  19.             Calc.password.value += newValue;  
  20.         }  
  21.         if (str.length <= password1.maxLength) {  
  22.             password1.value = Calc.password.value;  
  23.         }   
  24.     }  
  25.   
  26.     function setpassvalue() {  
  27.         var longnum = Calc.password.value.length;  
  28.         var num  
  29.         num = Calc.password.value.substr(0, longnum - 1);  
  30.         Calc.password.value = num;  
  31.         var str = Calc.password.value;  
  32.         password1.value = Calc.password.value;  
  33.     }  
  34.   
  35.     function OverInput() {  
  36.         var str = Calc.password.value;  
  37.         password1.value = Calc.password.value;  
  38.         closekeyboard();  
  39.         Calc.password.value = "";  
  40.         password1.readOnly = 1;  
  41.     }  
  42.   
  43.     function closekeyboard(theForm) {  
  44.         softkeyboard.style.display = "none";  
  45.     }  
  46.   
  47.     function showkeyboard() {  
  48.         randomNumberButton();  
  49.         var th = password1;  
  50.         var ttop = th.offsetTop;  
  51.         var thei = th.clientHeight;  
  52.         var tleft = th.offsetLeft;  
  53.         while (th = th.offsetParent) { ttop += th.offsetTop; tleft += th.offsetLeft; }  
  54.         softkeyboard.style.top = ttop + "px";  
  55.         softkeyboard.style.left = Math.max(tleft + 160, 0) + "px";  
  56.         softkeyboard.style.display = "block";  
  57.         password1.readOnly = 1;  
  58.         password1.blur();  
  59.         document.all.useKey.focus();  
  60.     }  
  61.   
  62.     function initCalc() {  
  63.         for (var i = 0; i < Calc.elements.length; i++) {  
  64.             if (Calc.elements[i].type == "button") {  
  65.                 var str1 = Calc.elements[i].value;  
  66.                 str1 = str1.trim();  
  67.                 var thisButtonValue = Calc.elements[i].value;  
  68.                 thisButtonValue = thisButtonValue.trim();  
  69.                 if (thisButtonValue.length == 1) {  
  70.                     Calc.elements[i].ondblclick = Calc.elements[i].onclick = function () {  
  71.                         var thisButtonValue = this.value;  
  72.                         thisButtonValue = thisButtonValue.trim();  
  73.                         addValue(thisButtonValue);  
  74.                     }   
  75.                 }   
  76.             }   
  77.         }   
  78.     }  
  79.   
  80.     String.prototype.trim = function () {  
  81.         return this.replace(/(^\s*)|(\s*$)/g, "");  
  82.     }  
  83.   
  84.     function randomNumberButton() {/*随机数字*/  
  85.         var randomNum;  
  86.         for (var i = 0; i < 21; i++) {  
  87.             randomNum = parseInt(Math.random() * 10);  
  88.             var tmp = Calc.button_number0.value;  
  89.             Calc.button_number0.value = eval("Calc.button_number" + randomNum + ".value");  
  90.             eval("Calc.button_number" + randomNum + ".value=tmp");  
  91.         }   
  92.     }  
  93. </script>  
  94. </head>  
  95. <body>  
  96.     <div id="softkeyboard" name="softkeyboard" style="position: absolute; left: 142px;  
  97.         top: 23px; z-index: 99; display: none; background-color: #99cc99; width: 178px;text-align: center;">  
  98.         <form id="Calc" name="Calc" action="" method="post" autocomplete="off">  
  99.             <input type="hidden" value="" name="password">  
  100.             <input type="hidden" value="ok" name="action2">  
  101.             <br />  
  102.             <!--<span style="font-weight: bold; font-size: 13px; color: #075BC3">密码输入器</span>-->  
  103.             <input id="useKey" type="button" value="使用键盘输入" onclick="password1.readOnly=0;password1.focus();closekeyboard();password1.value='';" style="width:172px;">  
  104.             <input type="button" name="button_number1" value="  1  ">  
  105.             <input type="button" name="button_number2" value="  2  ">  
  106.             <input type="button" name="button_number3" value="  3  "><br />  
  107.             <input type="button" name="button_number4" value="  4  ">  
  108.             <input type="button" name="button_number5" value="  5  ">  
  109.             <input type="button" name="button_number6" value="  6  "><br />  
  110.             <input type="button" name="button_number7" value="  7  ">  
  111.             <input type="button" name="button_number8" value="  8  ">  
  112.             <input type="button" name="button_number9" value="  9  "><br />  
  113.             <input type="button" name="button_number0" value="  0  ">  
  114.             <input name="button10" type="button" value="删 除" onclick="setpassvalue();" ondblclick="setpassvalue();" style="width: 52px">  
  115.             <input name="button12" type="button" onclick="OverInput();" value="确 定" style="width: 52px"><br />  
  116.         </form>  
  117.     </div>  
  118.     <input maxlength="6" size="20" type="password" name="password" ondblclick="password1=this;showkeyboard();"  
  119.         onclick="password1=this;showkeyboard();" title="请填写密码" />  
  120.         <input type="button" value="显示" onclick="alert(password1.value);" />  
  121. </body>  
  122. </html>  
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="softkeyboard.aspx.cs" Inherits="softkeyboard" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title>随机数字软键盘</title><script>    window.onload = function () {        password1 = null;        initCalc();    }    var password1;    var checkSoftKey;    function addValue(newValue) {        var str = Calc.password.value;        if (str.length < password1.maxLength) {            Calc.password.value += newValue;        }        if (str.length <= password1.maxLength) {            password1.value = Calc.password.value;        }     }    function setpassvalue() {        var longnum = Calc.password.value.length;        var num        num = Calc.password.value.substr(0, longnum - 1);        Calc.password.value = num;        var str = Calc.password.value;        password1.value = Calc.password.value;    }    function OverInput() {        var str = Calc.password.value;        password1.value = Calc.password.value;        closekeyboard();        Calc.password.value = "";        password1.readOnly = 1;    }    function closekeyboard(theForm) {        softkeyboard.style.display = "none";    }    function showkeyboard() {        randomNumberButton();        var th = password1;        var ttop = th.offsetTop;        var thei = th.clientHeight;        var tleft = th.offsetLeft;        while (th = th.offsetParent) { ttop += th.offsetTop; tleft += th.offsetLeft; }        softkeyboard.style.top = ttop + "px";        softkeyboard.style.left = Math.max(tleft + 160, 0) + "px";        softkeyboard.style.display = "block";        password1.readOnly = 1;        password1.blur();        document.all.useKey.focus();    }    function initCalc() {        for (var i = 0; i < Calc.elements.length; i++) {            if (Calc.elements[i].type == "button") {                var str1 = Calc.elements[i].value;                str1 = str1.trim();                var thisButtonValue = Calc.elements[i].value;                thisButtonValue = thisButtonValue.trim();                if (thisButtonValue.length == 1) {                    Calc.elements[i].ondblclick = Calc.elements[i].onclick = function () {                        var thisButtonValue = this.value;                        thisButtonValue = thisButtonValue.trim();                        addValue(thisButtonValue);                    }                 }             }         }     }    String.prototype.trim = function () {        return this.replace(/(^\s*)|(\s*$)/g, "");    }    function randomNumberButton() {/*随机数字*/        var randomNum;        for (var i = 0; i < 21; i++) {            randomNum = parseInt(Math.random() * 10);            var tmp = Calc.button_number0.value;            Calc.button_number0.value = eval("Calc.button_number" + randomNum + ".value");            eval("Calc.button_number" + randomNum + ".value=tmp");        }     }</script></head><body>    <div id="softkeyboard" name="softkeyboard" style="position: absolute; left: 142px;        top: 23px; z-index: 99; display: none; background-color: #99cc99; width: 178px;text-align: center;">        <form id="Calc" name="Calc" action="" method="post" autocomplete="off">            <input type="hidden" value="" name="password">            <input type="hidden" value="ok" name="action2">            <br />            <!--<span style="font-weight: bold; font-size: 13px; color: #075BC3">密码输入器</span>-->            <input id="useKey" type="button" value="使用键盘输入" onclick="password1.readOnly=0;password1.focus();closekeyboard();password1.value='';" style="width:172px;">            <input type="button" name="button_number1" value="  1  ">            <input type="button" name="button_number2" value="  2  ">            <input type="button" name="button_number3" value="  3  "><br />            <input type="button" name="button_number4" value="  4  ">            <input type="button" name="button_number5" value="  5  ">            <input type="button" name="button_number6" value="  6  "><br />            <input type="button" name="button_number7" value="  7  ">            <input type="button" name="button_number8" value="  8  ">            <input type="button" name="button_number9" value="  9  "><br />            <input type="button" name="button_number0" value="  0  ">            <input name="button10" type="button" value="删 除" onclick="setpassvalue();" ondblclick="setpassvalue();" style="width: 52px">            <input name="button12" type="button" onclick="OverInput();" value="确 定" style="width: 52px"><br />        </form>    </div>    <input maxlength="6" size="20" type="password" name="password" ondblclick="password1=this;showkeyboard();"        onclick="password1=this;showkeyboard();" title="请填写密码" />        <input type="button" value="显示" onclick="alert(password1.value);" /></body></html>


效果如图: