0

在 iPad 上的 IOS5、iPad2 等 iBooks<input type="color">中,当您单击输入字段时,iBooks 被接受为提示键盘显示的一种方式,也就是说,输入问题的答案。我最近刚刚更新到 IOS6,这种解决方法似乎不再有效。我尝试使用在这里找到的 JavaScript - http://www.linkedin.com/groups/How-Show-iPads-Keyboard-when-3877009.S.84287009

<script type="text/javascript"> 

function iPadTouchHandler(event) { 
var type = "", 
button = 0; /*left*/ 

if (event.touches.length > 1) 
return; 

switch (event.type) { 
case "touchstart": 

// OLD: On iPad2 clicking on a text input field did not show the keyboard 
//  if ($(event.changedTouches[0].target).is("select")) { 
// NEW: Now on iPad2 the touchstart-Event on input fields is ignored and everything         works fine 
// change my by Roland Caspers, Scheer Management 
if ($(event.changedTouches[0].target).is("select") ||     $(event.changedTouches[0].target).is("input")) { 

return; 
} 
iPadTouchStart(event); /*We need to trigger two events here to support one touch drag     and drop*/ 
event.preventDefault(); 
return false; 
break; 
</script> 

然而,这段代码似乎已经过时并且与 IOS5 相关。我知道一种解决方法,即将带有输入的页面放入 iFrame,在这种情况下您可以只使用 <input type="text">,但是我更愿意远离 iFrame,因为它们往往会移动周围的内容取决于输入框的位置。关于其他可能的解决方案或解决方法的任何想法?泰维姆 :)

4

2 回答 2

0

我在 iOS6 上也面临同样的问题,同样在<iframe>标签上工作得很好。但它省略了图像和样式等。

查看代码“ http://www.linkedin.com/groups/How-Show-iPads-Keyboard-when-3877009.S.84287009 ”,我觉得在以下情况下必须修改一些东西:

($(event.changedTouches[0].target).is("select") ||     $(event.changedTouches[0].target).is("input"))

如果有人提供较早的回复,我会很棒。

谢谢

于 2012-09-27T08:05:05.550 回答
0

我在 iOS 7 上的 iBooks 中遇到了同样的问题。棘手的部分是,iBooks 可能默认禁用所有文本输入字段。我们正在使用prototype.js,所以这是我为原型编写的解决方案:

$('my-input-field-id').observe('touchstart', function(event) {
    var element = event.element();
    if (element.disabled)
        element.disabled = false;
    element.focus();
    event.stop();
});

因此,只需在输入字段上侦听“touchstart”事件,并在触摸时启用并聚焦该字段。它适用于普通文本字段 ( <input type="text">)。简单的 :-)。

于 2013-10-18T08:33:58.947 回答