【发布时间】:2011-07-09 09:42:31
【问题描述】:
我正在为 ASP.NET 文本框使用 JavaScript 虚拟键盘。但是使用 TextBox 可以选择使用系统键盘。我正在尝试使用 ASP.NET 标签,但它不起作用。有没有办法严格使用虚拟键盘。
【问题讨论】:
标签: javascript asp.net virtual
我正在为 ASP.NET 文本框使用 JavaScript 虚拟键盘。但是使用 TextBox 可以选择使用系统键盘。我正在尝试使用 ASP.NET 标签,但它不起作用。有没有办法严格使用虚拟键盘。
【问题讨论】:
标签: javascript asp.net virtual
将您的文本框设为只读。
这样你的用户不能输入,但虚拟键盘上的 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>
【讨论】:
Password : <asp:TextBox ID="tbxt_passwrd" runat="server" Width="200" TextMode="Password" autocomplete="off" onfocus="getFocus(this.id);" onkeypress="window.event.keyCode=0;"></asp:TextBox> ,但它不起作用
Password : <asp:TextBox ID="tbxt_passwrd" runat="server" onkeypress="window.event.keyCode=0; return false;" Width="200" TextMode="Password" autocomplete="off" onfocus="getFocus(this.id);"></asp:TextBox> 这是我用过但还是不行