我正在为我的网络应用程序使用jqTouch,该应用程序在许多不同的手机上运行,包括iPhone。我遇到的问题只有iPhone。
当我使用jQuery函数val()
在表单上设置值时,键盘会自动打开。我不希望在我更改值或仅将默认值添加到预先存在的表单时发生这种情况 - 只应在用户尝试键入值时发生。
在表单输入上调用val()
时,有没有办法阻止键盘弹出?我在调用$(':focus').blur()
后立即尝试使用val()
,但键盘仍然快速打开和关闭,这是不可接受的。
答案 0 :(得分:1)
如果可行,您可以随时使用jQuery aop向val调用添加$(':focus').blur()
。这样的事情可能有用。
jQuery.aop.after( {target: jQuery, method: 'val'},
function(response){
if(typeof(response) == 'string')
$(':focus').blur();
return response;
});
我不太确定这个目标是否可行,但你可以玩这种东西,看看你是否能让它运转起来。如果您不想为jQuery方法添加副作用(可能是一个糟糕的想法),您可以始终创建自己的函数valNoKeyboard()
,作为独立函数或jQuery插件。我认为jQuery插件路由更有意义,除非有更好的方法来实现这一点。