IOS отключить стрелки клавиатуры
Мне нужно отключить стрелки вкладки клавиатуры в IOS, используя JavaScript или даже метатег приложения на веб-сайте, если он есть.
Я попробовал несколько вариантов, но столкнулся с проблемами, когда дело доходит до выбора меню.
Я также не могу вернуть все tabindex к -1, потому что это наносит ущерб вкладке на рабочем столе и других устройствах.
Любая помощь будет оценена.
Это пример того, что я сделал для полей, переходящих только на чтение.
$(document).ready(function() {
$('input, textarea, select').on('focus', function() {
$('input, textarea').not(this).attr('readonly', 'readonly');
$('select').not(this).attr("disabled", "disabled");
});
$('input, textarea, select').on('blur', function() {
$('input, textarea').removeAttr("readonly");
$('select').removeAttr("disabled");
});
});
Ответы
Ответ 1
Я действительно нашел способ сделать это, который работает довольно долго.
То, что я делаю, это обнаружение только устройств IOS, а затем отключение табуляции для ввода полей.
Я предполагаю, что смогу сделать еще один шаг и обнаружить IOS и сафари.
$(document).ready(function() {
// Detect IOS
if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {
// Only active input fields in use
$('input, textarea').on('focus', function() {
$('input, textarea').not(this).attr("readonly", "readonly");
});
$('input, textarea').on('blur', function() {
$('input, textarea').removeAttr("readonly");
});
// Disable tabing to select box's
$('select').attr('tabindex', '-1');
}
});
Ответ 2
Это проблема, которая не может быть решена путем установки атрибута html, метатега или прослушивания специальных событий (для этих стрелок нет события).
Единственная опция - отключить все другие входы в форме, когда вход сфокусирован, чтобы на вкладке не было входа.
Вместо того, чтобы писать этот код и изобретать колесо, вот ссылка на модуль jquery, который уже делает это: https://github.com/ChrisWren/touch-input-nav
Если вы хотите получить чистое решение js, посмотрите: https://github.com/ChrisWren/touch-input-nav/blob/master/touch-input-nav.js
там не так много кода, который требует перезаписи, поэтому это не должно быть проблемой.