【发布时间】:2010-09-23 11:07:56
【问题描述】:
我正在尝试在 iPad 应用程序上创建自定义键盘。但每次输入获得焦点时,都会弹出原生 iPad 键盘。在 JavaScript 中如何防止这种情况发生。
【问题讨论】:
标签: javascript ipad keyboard
我正在尝试在 iPad 应用程序上创建自定义键盘。但每次输入获得焦点时,都会弹出原生 iPad 键盘。在 JavaScript 中如何防止这种情况发生。
【问题讨论】:
标签: javascript ipad keyboard
将属性“只读”添加到您的输入并提供填充值的不同方式。
【讨论】:
我认为您不能阻止键盘出现在输入字段中。但是,您可以创建一个看起来就像带有 CSS 的输入字段的 html 元素并处理 onClick 事件以显示您的自定义键盘。
<style>
.textField{
width: 120px;
height: 17px;
border-style:inset;
border-width: 2px;
border-color: gray;
float: left;
}
</style>
<script>
function showKeyboard(){
alert("show the my cool keyboard");
}
</script>
Name: <div onClick="showKeyboard()" class="textField"></div>
您应该查看 Sencha Touch 为 iOS 设备开发 Web 应用程序。
【讨论】:
最好的办法是在 onclick 事件上停止该事件。
html:
<textarea onclick='myOnClickEvent'></textarea>
Javascript:
function myOnClickEvent(e){
e.stopPropagation();
}
道场:
function myOnClickEvent(e){
dojo.stopEvent(e);
}
煎茶:
function myOnClickEvent(e){
e.stopEvent();
}
希望对你有所帮助。
【讨论】:
position 和absolute div 在文本输入字段顶部带有z-index:1,并将onclick 处理程序附加到启动键盘的div。
下一步是附加键盘数字以影响文本字段的值。
【讨论】:
您应该查看safari sdk,移动 safari/html5 提供了一些额外的输入类型。
否则,您可以设置一个 div/span 的样式,使其看起来像一个输入并具有一个支持隐藏字段,然后在单击它时调出您的自定义 div 等,并根据用户的操作将值放入“输入”中。
当然,您可以通过渐进增强来执行此操作并将其呈现为普通文本框,然后在加载页面时将普通文本输入交换为隐藏字段/div/span 等
【讨论】:
仅供参考,您也可以在输入上调用 blur() 来隐藏键盘...虽然在这种情况下可能不是一个好的解决方案。
【讨论】:
我们遇到了完全相同的问题,所以我们使用了以下代码。它有效
<input type="text" onclick="openAlphaNumKeyboard(this)" onfocus="blur()" id="test-input" />
【讨论】: