Wpis z mikrobloga

Mirki kod JS na desktop działa, na mobile jakby go nie było. Pomocy. Skrypt nie pozwala na wprowadzenie do inputa innego znaku niż cyfra oraz jeden "," dodatkowo tylko 2 cyfry po przecinku

function validate(evt, ele) {
var theEvent = evt || document.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var value = ele.value + key;
var regex = /^\d+(,\d{0,2})?$/;
if( !regex.test(value) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}

``

#javascript #rwd
  • 7
@ipleelda: @dzikipies102:
Jeżeli jesteście zainteresowani to nie jest chyba bug, od jakiejśtam wersji chrome na mobile nie obsługuje eventów keyboardowych (bo potrzeba fizycznej klawiatury, jak podłączysz to będzie ok). Pozostaje jeszcze np. keyup i keydown ale one zwracają kod "229" szerzej do poczytania poniżej
https://www.outsystems.com/blog/javascript-events-unmasked-how-to-create-input-mask-for-mobile.html

rozwiązałem to przez oninput, przekazuję znak, koduję na ascii a dalej już sprawdzenie, jeżeli jest to znak niedozwolony to usuwam ostatni znak z inputa, dzieje