Vraag keyPress gebeurtenis schiet niet op Android mobiel


ik gebruik backbone,marionette voor mijn applicatie. Ik gebruikte dezelfde code voor beide desktop and mobile maar keypress werkt niet in mobile.Ik heb een ... gemaakt Jsfiddle om uit te proberen.

Als u deze link opent binnen mobile gebeurtenis niet vuren, als je opent desktop het vuurt. Hoe kan ik dit oplossen.

kan iemand mij helpen.

Bedankt.


10
2018-03-18 08:30


oorsprong


antwoorden:


Chrome Mobile ondersteunt keypress-evenementen momenteel niet goed. Er is een langdurige fout in deze:

https://code.google.com/p/chromium/issues/detail?id=118639

Ik geloof dat het moet worden opgelost in v38.


8
2017-09-13 19:31



Ik zal twee gebeurtenissen voorstellen in het invoervak.

Dit werkt op de desktop webbrowser.

1) onkeypress = return isNumberKey(event);

function isNumberKey(e)
{
    var evt = e || window.event;

    if(evt) 
    { 
        var charCode = evt.keyCode || evt.which; 
    }
    else 
    { 
        return true; 
    }

    if((charCode > 47 &&  charCode < 58) || charCode == 9 || charCode == 8 || charCode ==46 || charCode ==37 || charCode==39)
    { 
        return true; 
    }

    return false;
}

Dit werkt voor mobiel

2) onkeyup="numberMobile(event);"

function numberMobile(e){
    e.target.value = e.target.value.replace(/[^\d]/g,'');
    return false;
}

Pas beide gebeurtenissen toe op het invoervak ​​en het zal werken. Slechts een nadeel is, het maakt het langzaam. Maar voor nu moeten we ermee leven.

Er is één probleem met deze oplossing. Linknavigatie werkt niet. Ik zal binnenkort meer geschikte oplossingen bijwerken.


5
2018-06-09 08:29



Getest op mijn browser. Lijkt me te werken. Hier is een link naar uw essentie:

http://www.browserstack.com/start#os=android&os_version=4.1&device=Samsung+Galaxy+S+III&zoom_to_fit=true&full_screen=true&url=http%3A%2F%2Fjsfiddle.net%2F33Snz%2F3%2Fembedded%2Fresult%2F&speed = 1 & start = true

Kun je laten weten welk specifiek andriod apparaat en browser je test.


1
2018-03-18 08:43



Eindelijk vond ik een probleem, maar het zal niet werken in opera.In plaats van het schrijven van de code voor numerieke velden. Ik heb zojuist een attribuuttype = 'nummer' toegevoegd aan het invoerveld in html-bestand. Nu komt alleen het numerieke toetsenblok. Dus het voldoet aan mijn vereisten. Hier is het JsFiddle

HTML code:

<input type='number'/>

1
2018-03-19 07:35