Запретить клавиатуре выскакивать в текстовом поле фокус/клик в iPad webapps

Я пытаюсь создать пользовательскую клавиатуру на iPad-приложении. Но каждый раз, когда вход становится в фокусе, появляется встроенная клавиатура iPad. Как я могу предотвратить это, в JavaScript.

Ответ 1

добавить атрибут 'readonly' к вашему вводу и предоставить другое средство для заполнения значения.

Ответ 2

Я не думаю, что вы можете помешать клавиатуре появляться в полях ввода. Однако вы можете создать элемент html, который будет выглядеть как поле ввода с помощью CSS и обработать событие onClick, чтобы отобразить вашу пользовательскую клавиатуру.

<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>

Вы должны проверить Sencha Touch для разработки веб-приложений для устройств iOS.

Ответ 3

position a absolute div с z-index:1 поверх поля ввода текста и присоедините обработчик onclick к div, который запустит клавиатуру.

Следующим шагом будет привязать номера клавиатуры, чтобы повлиять на значение текстового поля.

Ответ 4

Лучше всего остановить событие в событии onclick.
html:

<textarea onclick='myOnClickEvent'></textarea>

Javascript:

function myOnClickEvent(e){
e.stopPropagation();
}

Dojo:

function myOnClickEvent(e){
dojo.stopEvent(e);
}

Сенча:

function myOnClickEvent(e){
e.stopEvent();
}

Я надеюсь, что эта помощь.

Ответ 5

Вы должны проверить safari sdk, есть несколько дополнительных типов ввода, доступных с мобильным сафари /html 5.

В противном случае вы можете стилизовать div/span, чтобы он выглядел как вход, и иметь скрытое скрытое поле, а затем, когда его щелкают, вызывают ваш пользовательский div и т.д. и помещают значения в "enter" на основе действий пользователей.

Конечно, вы сделаете это с прогрессивным улучшением и сделаете это как обычное текстовое поле, а затем при загрузке страницы замените обычный текстовый ввод для скрытого поля /div/span и т.д.

Ответ 6

FYI, вы также можете вызвать blur() на входе, чтобы скрыть клавиатуру... хотя, вероятно, это не очень хорошее решение в этой ситуации.