This is an HTML / CSS / JS (jQuery) iPad app. I\'ve got a button, that slides down an input form. I\'d like to focus the user on the input, and then launch the keyboard.
<Try:
$('#element').blur().focus();
or if that does not work:
$('#element').focus().blur().focus();
blur() eliminates the focus and focus() brings it back. For some reason, it works every time compared to focus() working once in a while on its own.
Maybe these links can help you:
http://4pcbr.com/topic/how_to_open_keyboard_on_ipad_with_js (not working anymore)
http://jgestures.codeplex.com
Turn that button into an input field then instantly swap focus to the main input field. They keyboard will open and stay opened. Below is an example using a button like you asked, placing a transparent input field over the button the user clicks. Tested on an iPhone 4 (iOS 6/7) and an HTC Windows phone.
The input you want the user to focus on:
<input id="main" />
The button the user presses (with input field overlayed using css):
<a>Button</a><input onfocus="FocusMain()" />
Swap focus instantly:
function FocusMain()
{
$("#main").focus();
}
Tested on Safari iPhone 7 & iPhone 6 Plus, Android 4.4
and it opened iOS virtual keyboard successfully when I touched the button.
1) make a Button to trigger keypress event => $('.btn_abc')
2) make a text input tag, and set the ID to this element => $('#search_input')
$( document ).ready(function() {
var focusTextField = function(){
console.log("focusElement");
};
var onKeypressHandler = function(){
console.log("* * * keypress event handler")
$('#search_input').blur().focus();
};
var onClickHandler = function() {
$('.btn_abc').trigger('keypress');
};
$('#search_input').bind('focus', focusTextField);
$('.btn_abc').bind('click', onClickHandler);
$('.btn_abc').bind('keypress', onKeypressHandler);
});
This should do what you want:
$("#element").focus().click();