【问题标题】:Virtual keyboard for label标签的虚拟键盘
【发布时间】:2011-07-09 09:42:31
【问题描述】:

我正在为 ASP.NET 文本框使用 JavaScript 虚拟键盘。但是使用 TextBox 可以选择使用系统键盘。我正在尝试使用 ASP.NET 标签,但它不起作用。有没有办法严格使用虚拟键盘。

【问题讨论】:

    标签: javascript asp.net virtual


    【解决方案1】:

    将您的文本框设为只读。

    这样你的用户不能输入,但虚拟键盘上的 javascript 可以写。这不是一个很好的锁定用户界面。

    使用 Javascript

    第二个技巧是使用 onkeypress 并删除该键。您可以在按下键时在 TextBox 上添加window.event.keyCode=0 并重置每个用户输入。

    onkeypress="window.event.keyCode=0;return false;"
    

    这样

    <asp:TextBox runat="server" ID="txtTest2" 
      onkeypress="window.event.keyCode=0;return false;"></asp:TextBox>
    

    新版本

    这适用于所有浏览器。我在chrome、firefox、ie上测试过

    <script>
    function DisableKeyboardOnMe(e)
    {   
        try
        {
            if (window && window.event)
                window.event.keyCode = 0;
            else
                e.which = 0;
        }
        catch(e){} 
    
        return false;
    }   
    </script>
    

    <asp:TextBox runat="server" ID="txtTest3" 
        onkeypress="return DisableKeyboardOnMe(event);">test</asp:TextBox>
    

    一种更简单的方法。

    我在所有浏览器上都进行了测试,这也可以正常工作。

     <asp:TextBox runat="server" ID="txtTest4" 
          onkeypress="return false;"></asp:TextBox>
    

    【讨论】:

    • 如何实现onkeypress?我在 VB 中使用它,但使用 C# 在 ASP.NET 中找不到它
    • @Kars 这是 javascript,您只需在 TextBox 中看到它时添加它,或者通过后面的代码将其添加为属性。
    • 我以这种方式添加了Password : &lt;asp:TextBox ID="tbxt_passwrd" runat="server" Width="200" TextMode="Password" autocomplete="off" onfocus="getFocus(this.id);" onkeypress="window.event.keyCode=0;"&gt;&lt;/asp:TextBox&gt; ,但它不起作用
    • @Kars 我已经更新了我的答案,我测试了它的工作。如果您使用它,请投票并接受。
    • Password : &lt;asp:TextBox ID="tbxt_passwrd" runat="server" onkeypress="window.event.keyCode=0; return false;" Width="200" TextMode="Password" autocomplete="off" onfocus="getFocus(this.id);"&gt;&lt;/asp:TextBox&gt; 这是我用过但还是不行
    猜你喜欢
    • 1970-01-01
    • 2013-01-03
    • 2015-01-02
    • 2013-04-02
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    相关资源
    最近更新 更多