2014-07-23 1 views
2

Есть много вопросов об этом. Но все они говорят о том, чтобы оставить фокус на поле. Вот моя проблема:Скрыть виртуальную клавиатуру на мобильном устройстве с помощью JQuery/Javascript (Mobiscroll)

У меня есть поле типа ввода. Когда пользователь нажмет на него, он откроет мою пользовательскую функцию мобильности. и в некоторых случаях, например, на планшетах Android 2. * или Windows, он также показывает виртуальную клавиатуру! Как я могу закодировать случай, когда виртуальная клавиатура никогда не появится!

Кто может помочь мне :)

ответ

1

Размытие было ключом к моей проблеме! Mobiscroll имеет метод, называемый onBeforeShow, который вызывается до появления сообщения mobiscroll. В этом методе я использовал blur() для типа ввода, в котором я использовал mobiscroll! Мой код ниже:

var options = { 
     preset: this.preset, 
     theme: 'wp light', 
     mode: 'scroller', 
     display: 'bottom', 
     timeWheels: "HHii", 
     dateFormat: "dd-mm-yy", 
     timeFormat: "HH:ii", 
     lang: 'nl', // TODO: Deduce from application language. 
     onBeforeShow: (html, inst) => { this.findControl().blur();} 
    }; 
    this.findControl().mobiscroll(options); 
4

Чтобы удалить клавиатуру вам нужно потерять фокус на активном элементе. Никакого другого решения.

Итак, отобразите всплывающее окно и удалите фокус.

Пример:

function clickInput() { 
    openPopUp(); 
    document.activeElement.blur(); // lose focus on the active element and hide keyboard 
} 

UPDATE:

Я не знаю "mobiscroll". Но чтобы скрыть клавиатуру, вам нужно потерять фокус на активном элементе.

if(document.activeElement) { 
    document.activeElement.blur(); 
} 
// This code remove the keyboard constantly. 
+0

Возможно, мой всплывающий текст был плохой идеей. Потому что я использую mobiscroll. Это похоже на тип ввода, который автоматически открывается. Я отредактировал свой вопрос –

+0

Thanx R3tep! Функция blur() помогла в конце концов. Это была комбинация использования mobiscroll с размытием, которое делало трюк! –

1

Blur - это ключ для Android, но отключение родителя - это ключ от WinJS.

var control = jQuery("#someControl"); 
// Disabling the parent prevents the keyboard to popup for WinJS. 
control.parent().prop('disabled', true); 
var options = { 
    preset: this.preset, 
    mode: 'scroller', 
    display: 'bottom', 
    timeWheels: "HHii", 
    dateFormat: "dd-mm-yy", 
    timeFormat: "HH:ii", 
    lang: 'nl', 
    onBeforeShow: function (inst) { 
     // Blur the control because Android will otherwise show the keyboard. 
     control.blur(); 
    } 
}; 
control.mobiscroll(options); 

 Смежные вопросы

  • Нет связанных вопросов^_^