Как отключить клавиатуру iPhone для указанного поля ввода на веб-странице
Я использую ввод месяца (например, jQuery UI datepicker) для поля истечения срока действия кредитной карты.
Мне нужно подавить клавиатуру iPhone, потому что она скрывает сборщик событий.
Я попытался установить поле для чтения и это не приемлемое решение - в Safari iOS 5.1 поля readonly пропускаются при навигации по клавиатуре (предыдущие/следующие кнопки на клавиатуре). Размытие поля также неприемлемо, поскольку оно вызывает проверку (мы также используем проверку jQuery).
Есть ли способ отключить клавиатуру iPhone в одном поле, не устанавливая его только для чтения или размытия?
Ответы
Ответ 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);
}
}