Je možné „Disable“ období klíč v číselném poli HTML pomocí softwarové klávesnice Android na Android Web View HTML5 aplikace?

hlasů
0

Když jsem zkontrolovat keyCodes na softKeyboard pro [.] [-] [] se e.key v JavaScript „Unidentified“ a e.keyCode je 229 pro všechny tyto znaky.

Přístroj jsem pomocí je TC52k scanner a spoušť skenování má stejný klíč a keyCode ... takže to nemůže být zcela zakázáno.

Nevím, kolik věcí jsem se snažil to nefungovalo ... ale budu psát nějaké ...

Jedná se o dynamický obor vázané s použitím rivets.js JSON objekty

$(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));
    }
});

^ V podstatě, který říká, že v případě, že poslední znak má kód 229 a poslední znak zadaného řetězce je ‚‘, pak řez poslední znak off ... ale nefunguje správně.

Také jsem udělal to, že v podstatě říká, že přijímat pouze klávesy, které mají keycodes mezi 48 a 57, které jsou tlačítka 1-9 v Android softwarové klávesnice.

<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>

Také nefungovalo ...

Má někdo zkušenosti s tímto a může pomoci? Vím, že je tu spousta nevyřešených názorů na tuto online. To je to poslední, co mám dělat, a její vedení mé aplikaci z nasazeny!

Také ... Snažil jsem se tyto funkce pomocí události: KeyUp, KeyDown, ke změně vstupních a stisk ...

Položena 13/02/2020 v 22:06
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Zde je nejlepší řešení, které jsem našel (od 229 také spouští ‚skeneru‘ spoušť, musím zjistit, zda řetězec obsahuje čárový kód a množství a bude potřeba oddělit dvě (keyCode Aby byla [.]opět stejná jako keyCode pro spoušť skeneru)) Tyto podmínky určují 2 2 věci:

Pokud je hodnota větší než 3, pak je nelze použít jako množství, protože množství nemůže být vyšší než ‚500‘, takže když se má délku větší než 5, má se za to, že je čárový kód.

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(), "]");
});

To je nejlepší způsob, jak jsem se snažil tak daleko.

Odpovězeno 18/02/2020 v 19:35
zdroj uživatelem

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