Когда элемент ввода текста имеет фокус (и мягкая клавиатура видна), я не могу напрямую нажать кнопку отправки (которая хорошо видна). Я должен сначала отпустить клавиатуру (щелкнув в другом месте или на "Готово" на клавиатуре), а затем нажмите кнопку "Отправить".
Это путаное поведение. Я рассмотрел возможность удаления кнопки входа в систему, когда клавиатура видна, но это было бы слишком запутанным (поскольку пользователи не знали, что они могут нажать "Перейти", или будут раздражены, что кнопка входа продолжает исчезать).
Это происходит только в iOS (не уверен, что он ограничен iOS 7, но подозревает, что это может быть), и я использую Telirik AppBuilder для своего приложения.
Поскольку я использовал тэг <button>
мягкая клавиатура появилась, когда это не было необходимо. Я теперь изменил все для <table>
(внутри <td>
, но может быть <div>
) с <img>
внутри значков. Чтобы таблица выглядела скорее как кнопка, есть класс CSS для цветов/границ. В верхней части также находится область отправки.
Страница может быть проверена по адресу http://ask.stroudvoices.co.uk/
Казалось бы, Android (предположительно iPad и т.д.) Обрабатывает кнопки как другой тип <input>
, тогда как <table>
рассматривается как <body>
.
Иногда есть простой ответ, по старой технологии!
function isTextInput(node) {
return ['INPUT', 'TEXTAREA'].indexOf(node.nodeName) !== -1;
}
document.addEventListener('touchstart', function(e) {
if (!isTextInput(e.target) && isTextInput(document.activeElement)) {
document.activeElement.blur();
}
}, false);