Я работаю над веб-приложением, которое будет поставляться исключительно клиентам iPad с помощью браузера Mobile Safari. В моей форме есть два поля ввода, которые будут заполнены данными из спаренного сканера штрих-кода Bluetooth.Mobile Safari - fun with focus()
Когда первое поле сканируется, следующий Javascript часы для обратного нажатия клавиши, который анализирует поступающую строку, а затем устанавливает фокус на поле количества ...
function tabtoquantity(e) {
keyEntry = event.keyCode;
if(keyEntry == '13') {
var barcode = document.test.barcodefield.value;
var labeltext = barcode.split("*");
document.test.itemkey.value = labeltext[0];
document.test.description.value = labeltext[1];
document.test.lotno.value = labeltext[2];
document.test.datercvd.value = labeltext[3];
document.test.binno.value = labeltext[4];
document.test.unitwgt.value = labeltext[5];
document.test.slot.value = labeltext[6];
document.test.allergens.value = labeltext[7];
document.test.kosher.value = labeltext[8];
//document.test.barcodefield.disabled="true";
//document.test.barcodefield.style.display="none";
document.test.scanqty.focus();
}
else if((keyEntry < '48') || (keyEntry > '57')) {
return false;
}
}
Это все работает отлично, за исключением того, что он не фокусируется на моем поле scanqty.
Как ни странно, у меня есть кнопка рядом с полем scanqty, что OnClick вызывает следующую функцию:
function qtyreset() {
document.test.scanqty.value = '';
document.test.scanqty.focus();
}
Я в недоумении, почему же команда работает в одном экземпляре, а не в другом , Функциональность работает в обычном Safari.
Возможно, это релевантно (?), Но помощник формы Mobile Safari (кнопки «Предыдущий» и «Следующий») появляется, когда я загружаю страницу, но исчезает после того, как я сканирую данные в первое поле ... где я хочу, чтобы он установил фокус на scanqty, но, похоже, не задает фокус нигде.
Я ценю любой вход/помощь.
Почему вы используете клавишу ввода? Традиционно он представляет форму. В браузерах рабочего стола вкладка переместится в следующее поле, в мобильном Safari, кнопка «Далее» сделает то же самое. Затем используйте tabIndex, чтобы установить фокус на поле * scanqty * и * barcodefield.onblur *, чтобы вызвать слушателя. – RobG
Более точно, клавиша ввода - это символ, добавленный сканером штрих-кода к отсканированным данным. Я полагаю, что я мог бы запрограммировать его, чтобы вместо этого добавить символ табуляции, и проанализировать строку данных onblur вместо того, чтобы наблюдать за определенным нажатием клавиши. Спасибо, я попробую. – KCBill
Билл, если у вас есть контроль над выходом сканеров, вы можете захотеть, чтобы он сбрасывал все в одном поле ввода и разбирал/перераспределял данные. Я очень скептически отношусь к тому, что есть какие-то гарантии относительно клавиатуры ввода-вывода <-> и что любое решение, включающее динамическое переключение фокуса, будет хрупким. – nmr