2012-09-26 133 views
0

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

<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”>,但是我倾向于远离iFrames,因为它们倾向于移动周围的内容取决于输入框的位置。有关其他可能的解决方案或解决方法的想法? Tyvm :)

回答

0

我这个同样的问题中挣扎的iBooks iOS上7.最棘手的部分是,这可能是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">)。简单:-)。