【问题标题】:Prevent keyboard from popping on textbox focus/click in iPad webapps防止键盘在 iPad webapps 中弹出文本框焦点/单击
【发布时间】:2010-09-23 11:07:56
【问题描述】:

我正在尝试在 iPad 应用程序上创建自定义键盘。但每次输入获得焦点时,都会弹出原生 iPad 键盘。在 JavaScript 中如何防止这种情况发生。

【问题讨论】:

    标签: javascript ipad keyboard


    【解决方案1】:

    将属性“只读”添加到您的输入并提供填充值的不同方式。

    【讨论】:

    • 请注意,某些小部件插件不会在只读输入上绑定事件
    【解决方案2】:

    我认为您不能阻止键盘出现在输入字段中。但是,您可以创建一个看起来就像带有 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 应用程序。

    【讨论】:

    • 这是一个钛合金“几乎原生”的应用程序,而不是 html,所以很遗憾这不起作用。
    • 这个想法是:我不知道你为什么要创建自己的键盘(这是一个完成的项目)。但是,当您这样做时,为什么不创建自己的自定义组件呢?这适用于您的自定义键盘。
    【解决方案3】:

    最好的办法是在 onclick 事件上停止该事件。
    html:

    <textarea onclick='myOnClickEvent'></textarea>
    

    Javascript:

    function myOnClickEvent(e){
    e.stopPropagation();
    }
    

    道场:

    function myOnClickEvent(e){
    dojo.stopEvent(e);
    }
    

    煎茶:

    function myOnClickEvent(e){
    e.stopEvent();
    }
    

    希望对你有所帮助。

    【讨论】:

      【解决方案4】:

      positionabsolute div 在文本输入字段顶部带有z-index:1,并将onclick 处理程序附加到启动键盘的div

      下一步是附加键盘数字以影响文本字段的值。

      【讨论】:

        【解决方案5】:

        您应该查看safari sdk,移动 safari/html5 提供了一些额外的输入类型。

        否则,您可以设置一个 div/span 的样式,使其看起来像一个输入并具有一个支持隐藏字段,然后在单击它时调出您的自定义 div 等,并根据用户的操作将值放入“输入”中。

        当然,您可以通过渐进增强来执行此操作并将其呈现为普通文本框,然后在加载页面时将普通文本输入交换为隐藏字段/div/span 等

        【讨论】:

          【解决方案6】:

          仅供参考,您也可以在输入上调用 blur() 来隐藏键盘...虽然在这种情况下可能不是一个好的解决方案。

          【讨论】:

            【解决方案7】:

            我们遇到了完全相同的问题,所以我们使用了以下代码。它有效

            <input type="text" onclick="openAlphaNumKeyboard(this)" onfocus="blur()" id="test-input" />
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2013-01-13
              • 2021-07-22
              • 2018-01-15
              • 2017-01-07
              • 1970-01-01
              • 1970-01-01
              • 2021-04-15
              相关资源
              最近更新 更多