zoukankan      html  css  js  c++  java
  • [译]虚拟键盘 模拟银行的


    下载VirtualKeyboard_updated.zip - 21.52 KB  


    登录银行我们常遇见只能使用虚拟键盘到登录系统, 这里我们将模拟的这个虚拟键盘


    如图所示:



    我们的需求

    这种键盘的要求将

    1。显示所有可使用的密码字段的键。这将包括字母,数字和特殊字符   

    2。点击每个键,  所以有人找过肩将不能够使  所有的键转换

    3。提供大写锁定退格键和Clear按钮  

    由于所有的钥匙都在功能上除了从值类似,我们可以直接使用HTML和模板来创建密钥集的大部分。 

     <input type="button" value="a" id="btn1"/> 

    这给我们一个按钮,但是,我们希望有更多。因此,我们添加以下事件。 

    onmousedown - 将其更改为#  

    onmouseup - 恢复键值

    的onclick - 点击写入的字符完成动作的密码箱   

    例如:

    string buttonHtmlString = "<input type=\"button\" class=\"keys\" value=\"{0}\" name =\"{1}\" id=\"btnVirKey\" onclick=\"func_click(this.value);\" onmousedown = \"hashthekeys();\" onmouseout=\"unhashthekeys();\" onmouseup=\"unhashthekeys();\" />";

    另一个方面是,我们使用的是显示此一些明确的屏幕区域,因此,我们有一个固定的模式键方案。 

    让其更像键盘

     /*      row1 - 15 char - alphabets
                 *      row2 - 11 char - alphabets
                 *      row3 - 10 char - numbers + 2 char symbols
                 *      row4 - 15 char - symbols
                 *      row5 - 15 char - symbols
                 *      row6 - Back Space, Clear, Caps Lock
                 */ 

    因此 表的宽度为300px  每行15个字符

    已创建了3个列表,每个我所需要的不同的字符集。 

         List<string> listAlphabets = new List<string>();
            List<string> listNumbers = new List<string>();
            List<string> listSymbols = new List<string>(); 

    分析差不多了 开始动手杀代码


    C# code
    private void CreateAlphabets()
            {
                for (int i =97; i <= 122; i++)
                {
                    //a = 97; z=122
                    listAlphabets.Add(char.ConvertFromUtf32(i).ToString());
                }
            }


     private void CreateNumberlist()
            {
                for (int i = 0; i < 10; i++)
                {
                    listNumbers.Add(i.ToString());
                }
            }

    private void CreateSymbolList()
            {       
                string[] symbollist = new string[] {"!","@","#","{1}quot;,"%","^","&","*","(",")","_","-","+","=","~","`",""",":",";","'",",",".","/","<",">","?","{","}","[","]","|","\\"};
                listSymbols.AddRange(symbollist);
            } 

    最初将所有的键盘符号加入列表


    第十五按钮之后加入一排,与模式,以适应。同样,与其他组数字,符号。

     //Filling first 2 rows -Alphabets            
                for (int i = 0; i < 26; i++)
                {
                    int next = rand.Next(1,listAlphabets.Count) -1;
                    htmltbl.Append(string.Format(buttonHtmlString, listAlphabets[next], listAlphabets[next]));
                    listAlphabets.RemoveAt(next);
                    if(i== 14)
                    {
                        //adding the second row
                        htmltbl.Append("</td></tr><tr><td>");
                    }
                } 

    它的触发事件

    javascript code

    function func_click(charVal) {   
                finalresult = document.getElementById("txtoutput").value;
                document.getElementById("txtoutput").value = finalresult + charVal;
            } 

    当名称产生相同的时候 我们设置重置事件

    function hashthekeys() {
             for (var z = 0; z < document.formVitualKeyboard.btnVirKey.length; z++) {                  
                        document.formVitualKeyboard.btnVirKey[z].value = '#';
                    }
             for (var z = 0; z < document.formVitualKeyboard.button2.length; z++) {
                document.formVitualKeyboard.button2[z].value = '#';
                    }
            }
        
        function unhashthekeys() {
             for (var z = 0; z < document.formVitualKeyboard.btnVirKey.length; z++) {                  
                        document.formVitualKeyboard.btnVirKey[z].value = document.formVitualKeyboard.btnVirKey[z].name;
                    }
            for (var z = 0; z < document.formVitualKeyboard.button2.length; z++) {
                document.formVitualKeyboard.button2[z].value = document.formVitualKeyboard.button2[z].name;
                     }
            }  
     




    作者:qq283868910 发表于2011-12-13 9:28:48 原文链接
    阅读:176 评论:1 查看评论
  • 相关阅读:
    项目管理【38】 | 项目人力资源管理-管理项目团队
    转:模型蒸馏,教师学生模型
    转:pytorch 中forward 的用法与解释说明
    KNN, sklearn
    转:matplotlib, 去除plt.savefig()的白边
    转:Latex 表格 合并行/列
    转:LaTeX xcolor颜色介绍
    余弦相似性,cos距离函数
    python confusion matrix 混淆矩阵
    转:Tmux 使用教程
  • 原文地址:https://www.cnblogs.com/SpeakHero/p/2431301.html
Copyright © 2011-2022 走看看