Ist es möglich, „disable“ die Punkt-Taste in einem HTML-Nummernfeld einer Android-Soft-Tastatur auf einem Android-Webansicht html5 App?

stimmen
0

Als ich die Keycodes auf dem Softkeyboard für überprüfen [.] [-] [], ist die e.key in javascript „Unidentified“ und die e.keyCode ist 229 für alle diese Zeichen.

Das Gerät verwende ich ein TC52k Scanner und der Scan-Auslöser hat den gleichen Schlüssel und keyCode ... so ist es nicht vollständig deaktiviert werden kann.

Ich weiß nicht, wie viele Dinge, die ich versucht, die nicht funktioniert hat ... aber ich werde einige posten ...

Dies ist ein dynamisches Feld mit rivets.js binded mit JSON-Objekten

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

Grundsätzlich ^, die besagen, dass, wenn das letzte Zeichen den Code 229 und das letzte Zeichen der eingegebenen Zeichenfolge hat, ist ein ‚‘, dann schneiden Sie das letzte Zeichen aus ... aber nicht richtig funktionieren.

Ich habe auch diese, die im Grunde sagt, nur Schlüssel zu akzeptieren, die keycodes zwischen 48 und 57 haben die Tasten 1-9 auf der Android virtuelle Tastatur sind.

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

Auch hat nicht funktioniert ...

Hat jemand Erfahrung mit diesem und kann helfen? Ich weiß, es gibt viele ungelöste Beiträge über diese online. Es ist das letzte, was ich tun muss und seine halten meine App eingesetzt werden!

Auch ... Ich habe diese Funktion Ereignisse versucht: keyup, keydown, ändern, Ein- und keypress ...

Veröffentlicht am 13/02/2020 um 22:06
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Hier ist die beste Abhilfe , dass ich gefunden (seit 229 auch die ‚Scanner‘ Trigger auslöst, muss ich feststellen , ob ein String einen Barcode enthält und eine Menge und trennen müssen die beiden (die keyCode für eine [.]wieder die gleiche wie die keyCode für den Scanner - Trigger)) die zwei Bedingungen bestimmen , 2 Dinge:

Wenn der Wert mehr als 3 ist, dann ist es nicht als eine Menge zulässig, da die Menge nicht mehr als ‚500‘ sein kann, so dass, wenn es eine größere Länge hat als 5 ist, wird es als ein Barcode sein.

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

Dies ist der beste Weg, die ich bisher ausprobiert habe.

Beantwortet am 18/02/2020 um 19:35
quelle vom benutzer

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