2017-02-20 2 views
0

このMeteorクライアントイベントは、デスクトップブラウザで正常に機能しますが、モバイルブラウザ「Chrome」では同じことをしません。keypressがモバイルブラウザで動作しない

"@"の後に "g"のキー入力を検出し、 "@ gmail.com"と置き換えます。
どのように携帯電話でも動作するようにするには? Android版Chromeで"keypress"イベントが面倒であるよう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

可能な重複してtextInputイベント(https://stackoverflow.com/questions/があります30743490/capture-keys-on-android-virtual-keyboard-using-javascript) – reyiyo

答えて

1

あなたの入力した文字を与え、また、[JavaScriptを使用してAndroidの仮想キーボード上で入力されたキャプチャーキー]の解約

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

複数の質問に[同じ回答](https://stackoverflow.com/a/46673783/5292302)を追加しないでください。最良のものに答え、残りを重複としてフラグを立てる。 「[複数の質問に重複した回答を追加することは可能ですか?](http://meta.stackexchange.com/q/104227/347985)を参照してください。 –

関連する問題