【问题标题】:jQuery val() opens keyboardjQuery val() 打开键盘
【发布时间】:2011-03-26 19:31:54
【问题描述】:

我将 jqTouch 用于我的网络应用程序,该应用程序在许多不同的手机上运行,​​包括 iPhone。我遇到的问题仅限于 iPhone。

当我使用 jQuery 函数 val() 在表单上设置值时,键盘会自动打开。我不希望在更改值或只是将默认值添加到预先存在的表单时发生这种情况 - 只有当用户尝试输入值时才会发生这种情况。

当在表单输入上调用val() 时,有没有办法阻止键盘弹出?我尝试在调用val() 后立即使用$(':focus').blur(),但键盘仍然非常快速地打开和关闭,这是不可接受的。

【问题讨论】:

    标签: jquery iphone forms keyboard


    【解决方案1】:

    如果可行,您可以随时使用 jQuery aop$(':focus').blur() 添加到 val 调用中。这样的事情可能会奏效。

    jQuery.aop.after( {target: jQuery, method: 'val'}, 
        function(response){
           if(typeof(response) == 'string')
             $(':focus').blur();
    
           return response;
    });
    

    我不太确定该目标是否会起作用,但您可以尝试一下这种东西,看看您是否不能让它起作用。如果您不想为 jQuery 方法添加副作用(可能是个糟糕的主意),您可以随时制作自己的函数 valNoKeyboard(),作为独立函数或 jQuery 插件。我认为 jQuery 插件路由更有意义,除非有更好的方法来做到这一点。

    【讨论】:

    • 我会玩它,让你知道它是否适合我。谢谢。
    • 它对我有用,只需进行一些小改动。再次感谢您的提示。 jQuery.aop.after( {target: jQuery, method: 'val'}, function(response) { if(typeof(response) == 'string') $(':focus').blur() return response; } );
    • 很高兴你得到它的工作:)。我会修改我的答案以反映对你有用的东西。
    猜你喜欢
    • 2013-08-27
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 2020-12-06
    • 2015-11-20
    • 2014-06-07
    • 1970-01-01
    相关资源
    最近更新 更多