Можно ли «отключить» ключ периода в числовом поле HTML с использованием экранной клавиатуры Android на Android Web View html5 приложение?

голоса
0

Когда я проверяю Кодовые ключи на softKeyboard для [.] [-] [], то e.key в JavaScript является «Неопознанное» и e.keyCode является 229 для всех этих персонажей.

Устройство я использую сканер TC52k и триггер сканирования имеет один и тот же ключ и KEYCODE ... поэтому он не может быть полностью отключен.

Я не знаю, сколько вещей, которые я пробовал, что не получилось ... но я буду размещать некоторые ...

Это динамическое поле переплетены с rivets.js использованием объектов JSON

$(document).on(keydown, .qty-input, function(e) {
    let code = e.keyCode;
    if (code == 229 && $(this).val().charAt(str.length - 1) == .) {
        $(this).val($(this).val().slice(0, -1));
    }
});

^ В принципе, это говорит, что если последний символ имеет код 229 и последний символ введенной строки является «», а затем вырезать последний символ прочь ... но не работает правильно.

Я также сделал это, что в принципе говорит только принимать ключи, которые имеют между 48 кодов клавиш и 57, которые являются клавиши 1-9 на андроид программной клавиатуры.

<input class=qty-input placeholder=0 type=number min=0 step=1 onkeypress=return event.charCode >= 48 && event.charCode <= 57 && event.keyCode != 229 pattern=[0-9]* autofocus>

Также не работает ...

Кто-нибудь есть опыт работы с этим и может помочь? Я знаю, что есть много нерешенных сообщения об этом в Интернете. Это последнее, что я должен делать, и его сохранение моего приложения от развертываются!

Кроме того ... Я попробовал эти функции с использованием события: KeyUp, KeyDown, изменения, ввода и нажатия клавиш ...

Задан 13/02/2020 в 22:06
источник пользователем
На других языках...                            


1 ответов

голоса
0

Вот лучшее решение , которое я нашел (с 229 также запускает триггер «сканер», я должен обнаружить , содержит ли строка штрихового кода и количество и будет отделять два (KEYCODE для [.]опять же , как KEYCODE для запуска сканера)) в 2 условия определяют 2 вещи:

Если значение больше, чем 3, то это не допускается как количество, так как количество не может быть более «500», так что, когда он имеет длину больше, чем 5, то считается, что штрих-код.

let oldVal = '';
let newVal = '';
let barcode = '';
$(document).on("keydown", "input.received-qty", function(e) {
    let code = e.keyCode || e.which || e.charCode;
    oldVal = $(this).val();
});

$(document).on("keyup", "input.received-qty", function(e) {
    let code = e.keyCode || e.which || e.charCode;
    newVal = $(this).val();
    if (code == 229 && e.target.value.length >= 3) {
        barcode = $(this).val().slice(oldVal.length - 1, -1);
        $(this).val(oldVal);
    } else if (code == 229 && e.target.value.length <= 3) {
        let x = oldVal.replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/g, "");
        $(this).val('');
        $(this).val(x);
    }
    console.log("oldVal : ", "[", oldVal, "]", "newVal : ", "[", $(this).val(), "]");
});

Это самый лучший способ, которым я пытался до сих пор.

Ответил 18/02/2020 в 19:35
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more