[ 
https://issues.apache.org/jira/browse/CB-5115?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14802704#comment-14802704
 ] 

anchann commented on CB-5115:
-----------------------------

More info for future people: I hit this problem on iOS8, about half the time by 
the time the keyboard is up the input/textarea fields no longer have focus. The 
way I solved it is by catching the touchstart event, preventing default action, 
and then manually calling focus(). Seems to work reasonably well on iOS8 and 
iOS9. Going to push this to production tonight and see if any problems arise.

$("body").on("touchstart", "textarea, input", (e): void => {
        e.preventDefault();
        $(e.target).focus();
});

> On iOS 7, events are dispatched to wrong elements when taping an input field 
> pops the virtual keyboard
> ------------------------------------------------------------------------------------------------------
>
>                 Key: CB-5115
>                 URL: https://issues.apache.org/jira/browse/CB-5115
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>    Affects Versions: 3.1.0
>         Environment: iOS 7
>            Reporter: Adrian Vasiliu
>         Attachments: test_Cordova-pure-html.html
>
>
> On iOS 7, when a Cordova 3.1 app contains input fields (<input>, <textarea>), 
> the events such as "focus" and "click" can be dispatched to the wrong element 
> when taping the field causes the virtual keyboard to show up.
> Apparently, the event dispatching mechanism is confused by the fact the page 
> is pushed by the keyboard showing up: the events are dispatched to the 
> element at the coordinate after the push, instead of the element at the 
> coordinate of the initial tap gesture.
> Reproduced with Cordova 3.1 using Xcode 5.0 on Mac OS X 10.8.5, running on 
> iPhone and iPad simulators and real devices. 
> How to reproduce:
> Run on iOS 7 a Cordova 3.1 app using the code from the attached test file. 
> The test contains several input elements, and a message area which displays a 
> message for each "focus" and "click" events received by the input elements; 
> the message includes the id of the element. When tapping an input element 
> while the keyboard is not visible, the message shows that the event is 
> received by wrong element. Also, the wrong input is focused. Differently, 
> when the keyboard is already visible, the events are dispatched to the 
> correct element.
> Notes:
> - Reproduced only when *not* using height:device-height in the meta tag, per 
> the recommendation in the Cordova 3.1 doc 
> (http://cordova.apache.org/docs/en/3.1.0/guide_platforms_ios_upgrading.md.html#Upgrading%20iOS).
> - Setting KeyboardShrinksView to either true or false in config.xml does not 
> matter for this issue.
> - The same test code works fine in a pure webapp in Safari on iOS 7.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to