Подтвердить что ты не робот

Как отключить клавиатуру iPhone для указанного поля ввода на веб-странице

Я использую ввод месяца (например, jQuery UI datepicker) для поля истечения срока действия кредитной карты.

Мне нужно подавить клавиатуру iPhone, потому что она скрывает сборщик событий.

Я попытался установить поле для чтения и это не приемлемое решение - в Safari iOS 5.1 поля readonly пропускаются при навигации по клавиатуре (предыдущие/следующие кнопки на клавиатуре). Размытие поля также неприемлемо, поскольку оно вызывает проверку (мы также используем проверку jQuery).

Есть ли способ отключить клавиатуру iPhone в одном поле, не устанавливая его только для чтения или размытия?

4b9b3361

Ответ 1

Я не сталкивался с тем, чтобы скрыть клавиатуру. Но подумали ли вы, что альтернативный способ отображения "ввода". Один из вариантов будет использовать <input type="month" />, который вносит в iOS5 собственный сборщик месяцев.

Второй вариант - это стиль, например. элемент span в качестве входного элемента (-webkit-внешний вид не работает на iOS) и добавление tabindex для элемента. Это также может работать, хотя я не знаю, как вы выбираете сборщик месяцев.

Третий вариант - не можете ли вы предотвратить процесс проверки, когда размытие поля запускается вручную?

Ответ 2

У меня была такая же проблема в Drupal, где поля ввода будут добавляться динамически, поэтому я добавил некоторые js, проверив Iphone/Ipad и добавив свойство "readonly"

var checkUserAgent = navigator.userAgent;
    if (checkUserAgent.match(/iPad/i) || checkUserAgent.match(/iPhone/i)) {
        var checkBabyId1 = $('#babys_due_date_id').length > 0;
        if (checkBabyId1 == true) {
            $('#babys_due_date_id').find('input').prop('readonly', true);
        }
    }