2017-02-20 6 views
0

Dieses Meteor-Client-Ereignis funktioniert gut mit dem Desktop-Browser, funktioniert aber nicht mit dem mobilen Browser "Chrome".Tastendruck funktioniert nicht im mobilen Browser

Es erkennt die Schlüsseleingabe von "g" nach "@" und ersetzt sie durch "@ gmail.com".
Irgendeine Idee, wie man es auf dem Handy auch funktioniert? thx

Template.input.events({ 
    'keypress input': function (evt, template) { 
    if (evt.which === 13) { 
     //do stuff 
    } 
    else if (Session.get('taskSelected') === 'walk') { 
     if (evt.which == 103) { // "g" has been typed do gmail.com 
     utility.inputReplaceWith('gmail.com', evt); 
     } 
     else if (evt.which === 121) { // "y" for yahoo.com 
     utility.inputReplaceWith('yahoo.com', evt); 
     } 
     else if (evt.which === 104) { 
     utility.inputReplaceWith('hotmail.com', evt); 
     } 
    } 
    } 
}); 

    inputReplaceWith: (text, evt) => { 
     let elem = document.getElementsByName('email')[0].value; 
     if (elem.slice(-1) == '@') { // last char is "@" 
     evt.preventDefault(); 
     document.getElementsByName('email')[0].value = elem + text; 
     } 
    }, 
+0

Mögliche Duplikat [Capture-Tasten getippt auf Android virtuelle Tastatur mit Hilfe von Javascript] (https://stackoverflow.com/questions/ gibt 30743490/capture-keys-typed-on-android-virtual-tastatur-using-javascript) – reyiyo

Antwort

1

Es gibt eine textInput Fall, dass Sie die eingegebenen Zeichen und ist auch kündbare

const inputField = document.getElementById('wanted-input-field'); 

inputField.addEventListener('textInput', function(e) { 
    // e.data will be the 1:1 input you done 
    const char = e.data; // In our example = "a" 

    // If you want the keyCode.. 
    const keyCode = char.charCodeAt(0); // a = 97 

    // Stop processing if "a" is pressed 
    if (keyCode === 97) { 
     e.preventDefault(); 
     return false; 
    } 
    return true; 
}); 
+0

Bitte fügen Sie [dieselbe Antwort] (https://stackoverflow.com/a/46673783/5292302) nicht mehreren Fragen hinzu. Beantworte die beste und markiere den Rest als Duplikate. Siehe [Ist es akzeptabel, mehreren Fragen eine doppelte Antwort hinzuzufügen?] (Http://meta.stackexchange.com/q/104227/347985) –

Verwandte Themen