Είναι δυνατόν να «απενεργοποίηση» το κλειδί περίοδο σε ένα πεδίο αριθμού HTML χρησιμοποιώντας ένα μαλακό πληκτρολόγιο Android σε Android Web Προβολή 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 και ο τελευταίος χαρακτήρας του άρχισε string είναι μια «», στη συνέχεια, κόψτε τον τελευταίο χαρακτήρα off ... αλλά δεν λειτουργεί σωστά.

Έκανα επίσης αυτό που ουσιαστικά λέει να δέχονται μόνο τα κλειδιά που έχουν κωδικών μεταξύ 48 και 57 τα οποία είναι πλήκτρα 1-9 στο Android μαλακό πληκτρολόγιο.

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

Επίσης, δεν λειτούργησε ...

Υπάρχει κάποιος που έχει εμπειρία με αυτό και μπορεί να βοηθήσει; Ξέρω ότι υπάρχουν πολλά άλυτα θέσεις για αυτό το online. Είναι το τελευταίο πράγμα που πρέπει να κάνετε και της διατήρησης της εφαρμογής μου από το να αναπτυχθεί!

Επίσης ... Έχω δοκιμάσει αυτά τα συνάρτηση με τη χρήση γεγονότα: keyup, keydown, αλλαγή, εισόδου και πάτημα πλήκτρου ...

Δημοσιεύθηκε 14/02/2020 στις 00:06
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

Εδώ είναι η καλύτερη λύση που βρήκα (από 229 ενεργοποιεί επίσης τη σκανδάλη «σαρωτή», έχω να ανιχνεύσει αν ένα string περιλαμβάνει ένα barcode και μια ποσότητα και θα πρέπει να διαχωρίσει τα δύο (το keycode για μια [.]ακόμη φορά είναι το ίδιο με το keycode για τη σκανδάλη scanner)) Οι 2 προϋποθέσεις καθορίζουν 2 πράγματα:

Εάν η τιμή είναι μεγαλύτερη από 3, τότε δεν επιτρέπεται ως ποσότητα, επειδή η ποσότητα δεν μπορεί να είναι πάνω από «500», έτσι ώστε όταν έχει μήκος μεγαλύτερο από 5, θεωρείται ότι είναι ένα barcode.

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 στις 21:35
πηγή χρήστη

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