2017-02-20 6 views
0

Это событие клиента Meteor отлично работает на настольном браузере, но не удается сделать то же самое в мобильном браузере Chrome.keypress не работает в мобильном браузере

Он определяет ввод ключа «g» после «@» и заменяет его «@ gmail.com».
Любая идея, как заставить его работать на мобильном телефоне? ТНХ

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

Возможный дубликат [ключи Capture напечатанных на андроид виртуальной клавиатуры с помощью JavaScript] (https://stackoverflow.com/questions/ 30743490/capture-keys-typed-on-android-virtual-keyboard-using-javascript) – reyiyo

ответ

1

Существует textInput события, которое дает введенный символ, а также сократимое

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