I am trying to create a custom keyboard on an iPad application. But each time the input get the focus, the native iPad keyboard pops up. How can I prevent this, in JavaScript.
add attribute 'readonly' to your input and provide a different means of populating the value.
We had exact same issues so we used following code.It worked
<input type="text" onclick="openAlphaNumKeyboard(this)" onfocus="blur()" id="test-input" />
The best thing to do is to stop the event on the onclick event.
html :
<textarea onclick='myOnClickEvent'></textarea>
Javascript :
function myOnClickEvent(e){
e.stopPropagation();
}
Dojo :
function myOnClickEvent(e){
dojo.stopEvent(e);
}
Sencha :
function myOnClickEvent(e){
e.stopEvent();
}
I hope this help.
You should check the safari sdk, there are some extra input types available with mobile safari/html5.
Otherwise you could style a div/span to look like an input and have a backing hidden field, then when it is clicked on bring up your custom div etc and put values into the "input" based on the users actions.
Of course you would do this with progressive enhancement and render this as a normal textbox then on the loading of the page swap the normal text input for your hidden field/div/span etc
I don't think you can prevent the keyboard from appearing on input fields. However you could create an html element that looks just like an input field with CSS and handle the onClick event to show your custom keyboard.
<style>
.textField{
width: 120px;
height: 17px;
border-style:inset;
border-width: 2px;
border-color: gray;
float: left;
}
</style>
<script>
function showKeyboard(){
alert("show the my cool keyboard");
}
</script>
Name: <div onClick="showKeyboard()" class="textField"></div>
You should checkout Sencha Touch for developing Web Apps for iOS devices.
FYI, you can also call blur() on an input to hide the keyboard... although probably not a good solution in this situation.