jQuery val () открывает клавиатуру - PullRequest
2 голосов
/ 08 августа 2010

Я использую jqTouch для своего веб-приложения, которое работает на разных телефонах, включая iPhone.У меня проблема только с iPhone.

Когда я устанавливаю значение в форме с помощью функции jQuery val(), клавиатура открывается автоматически.Я не хочу, чтобы это происходило, когда я меняю значение или просто добавляю значение по умолчанию в существующую форму - это должно происходить только тогда, когда пользователь пытается ввести значение.

Есть лиспособ запретить всплывающее окно клавиатуры, когда val() вызывается при вводе формы?Я попытался использовать $(':focus').blur() сразу после вызова val(), но клавиатура все еще открывается и закрывается очень быстро, что недопустимо.

1 Ответ

1 голос
/ 08 августа 2010

Если это работает, вы всегда можете использовать jQuery aop , чтобы добавить $(':focus').blur() к вызовам val.Нечто подобное может сработать.

jQuery.aop.after( {target: jQuery, method: 'val'}, 
    function(response){
       if(typeof(response) == 'string')
         $(':focus').blur();

       return response;
});

Я не совсем уверен, что эта цель сработает, но вы могли бы поиграть с этим и посмотреть, если вы не можете заставить его работать.Если вы не хотите добавлять побочные эффекты в методы jQuery (возможно, это ужасная идея), вы всегда можете создать свою собственную функцию с именем valNoKeyboard(), либо как отдельную функцию, либо как плагин jQuery.Я думаю, что маршрут плагина jQuery имеет больше смысла, если нет лучшего способа сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...