Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 物理键盘不';使用虚拟键盘时,请不要禁用_Javascript_Html - Fatal编程技术网

Javascript 物理键盘不';使用虚拟键盘时,请不要禁用

Javascript 物理键盘不';使用虚拟键盘时,请不要禁用,javascript,html,Javascript,Html,我有一个HTML应用程序,应该有一个登录功能,我将使用虚拟键盘而不是物理键盘。键盘可以工作,但我想禁用物理键盘,让用户使用虚拟键盘。我使用了以下代码: $('#Document').keypress(function (e) { e.preventDefault(); }); 但当我这样做时,它会禁用整个应用程序的输入,因此我尝试具体如下: $('#loginUsername').keypress(function (e) { e.preventDefault(

我有一个HTML应用程序,应该有一个登录功能,我将使用虚拟键盘而不是物理键盘。键盘可以工作,但我想禁用物理键盘,让用户使用虚拟键盘。我使用了以下代码:

$('#Document').keypress(function (e) {
        e.preventDefault();
    });
但当我这样做时,它会禁用整个应用程序的输入,因此我尝试具体如下:

$('#loginUsername').keypress(function (e) {
    e.preventDefault();
});
但是键盘不工作。 我正在使用这里的键盘:


我该怎么做呢?

首先,我觉得有责任说:虚拟键盘几乎总是很糟糕的,除了触摸屏以外,几乎没有理由使用它们。所以,请想想你的用户

但是,也就是说:要禁用输入中的按键,请从按键处理程序返回
false

$("input").on("keypress", function() {
    return false;
});

我找到了一个有效的解决方案:

$('#UserName').keypress(function (e) {
    e.preventDefault();
    lockInput: true,
    preventPaste: true
});
刚刚将“lockInput”关键字指定为true,并将“preventPaste”指定为停止处理和粘贴


希望有人会发现它有用。

呃,请不要这样做。您在发布的URL上尝试过第三个示例吗?禁用物理键盘是提高安全性的一种非常蹩脚的方法。如果它是由一个表单提交的,并且用户有间谍软件,他们的输入将被捕获,不管是否是键盘输入。你所要做的只是展示一个难以使用的键盘,可能甚至与他们的键盘布局不匹配,这激怒了人们。相信我,我宁愿不使用虚拟键盘,但当你得到要求时,你会按照他们的要求去做。特别是当你为此而得到报酬时……固执地不去做和不去做是有区别的。如果运气好的话,当客户恢复理智时,你就可以消除这种讨厌的东西。你基本上是在把任何一个有屏幕阅读器的人扔进狼群。