我正在尝试使用jquery虚拟键盘 - http://mottie.github.io/Keyboard/mobile.html创建一个仅限数字的输入文本,其中包含一些用于移动Web应用程序的加速键。
但是我遇到了一个巨大的问题,即当我按下输入框触发屏幕/虚拟键盘时,本机安卓键盘会被触发。如何仅触发虚拟键盘,也可以使用其他插件。我测试过一些都有同样问题的人。
也许有一种方法可以禁用输入字段,因此它不会触发本机键盘,但仍会触发屏幕键盘?输入“只读”有一些问题。
我和其他用户有同样的问题:https://stackoverflow.com/questions/15289281/disable-mobile-default-keyboard-to-show-up-using-my-own-virtual-keyboard-web-a但他的问题没有答案。
首次尝试
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Virtual Keyboard Basic Demo</title>
<!-- demo -->
<link href="demo/demo.css" rel="stylesheet">
<!-- jQuery & jQuery UI + theme (required) -->
<link href="http://code.jquery.com/ui/1.9.0/themes/ui-darkness/jquery-ui.css" rel="stylesheet">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.js"></script>
<script src="http://code.jquery.com/ui/1.9.0/jquery-ui.min.js"></script>
<!-- keyboard widget css & script (required) -->
<link href="css/keyboard.css" rel="stylesheet">
<script src="js/jquery.keyboard.js"></script>
<!-- keyboard extensions (optional) -->
<script src="js/jquery.mousewheel.js"></script>
<!--
<script src="js/jquery.keyboard.extension-typing.js"></script>
<script src="js/jquery.keyboard.extension-autocomplete.js"></script>
-->
<!-- initialize keyboard (required) -->
<script>
$(function(){
alert("Keyboard ON");
//$('#keyboard').keyboard();
$('#keyboard').on('click tap vclick', function (event) {
//alert("detected touch");
event.stopImmediatePropagation();
event.preventDefault();
$('#keyboard').keyboard();
});
});
</script>
</head>
<body>
<!-- Links to other demo pages & docs -->
<div id="nav">
<a href="index.html">Main Demo</a>
<a class="current" href="basic.html">Basic</a>
<a href="mobile.html">Mobile</a>
<a href="layouts.html">Layouts</a>
<a href="navigate.html">Navigate</a>
<a href="calculator.html">Calculator</a>
<a class="play" href="http://jsfiddle.net/Mottie/MK947/">Playground</a>
<a class="git" href="https://github.com/Mottie/Keyboard/wiki">Documentation</a>
<a class="git" href="http://github.com/Mottie/Keyboard/downloads">Download</a>
<a class="issue" href="https://github.com/Mottie/Keyboard/issues">Issues</a><br><br>
</div>
<!-- End Links -->
<div id="wrap"> <!-- wrapper only needed to center the input -->
<!-- keyboard input -->
<input id="keyboard" type="text">
<div><p>Static TEST</p></div>
</div> <!-- End wrapper -->
</body>
答案 0 :(得分:0)
我添加了以下代码似乎确实有效,但需要进行更多测试才能使其成为一个可靠的解决方法:
$('.keyboard').on('focus click tap vclick', function (event) {
event.stopImmediatePropagation();
event.preventDefault();
$('.keyboard').blur();
});
答案 1 :(得分:0)
您可以将readonly
添加到<input>
标记,这将阻止原生键盘显示。虽然记得为桌面用户删除它,这将需要一些从未有趣的设备检测。
答案 2 :(得分:0)
只需使用全局属性<div inputmode="none">
,即可获得帮助。
https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode