web-dev-qa-db-fra.com

iPad Safari - Faire disparaître le clavier

Dans le navigateur Safari pour iPad, lorsque je change de focus d’une zone de texte à une liste déroulante, le clavier reste ... Y at-il un moyen (peut-être avec Javascript) de masquer le clavier lorsque l’utilisateur floute?

Indirectement, je cherche un équivalent de (mais dans Safari Mobile)

[tempTextField resignFirstResponder]; 
55
testndtv

J'ai trouvé la solution pour cela à http://uihacker.blogspot.com/2011/10/javascript-hide-ios-soft-keyboard.html . Essentiellement, faites ceci (cela a fonctionné pour moi):

var hideKeyboard = function() {
    document.activeElement.blur();
    $("input").blur();
};
149
rdoggett

J'avais un iPad avec iOS 5.0.1 qui ne cachait pas le clavier après une connexion réussie sur mon site. J'ai résolu en exécutant simplement la commande javascript

document.activeElement.blur();

après la connexion réussie et maintenant le clavier est correctement caché :-)

18
lucaferrario

Je sais que la question est un peu plus ancienne, mais j’ai trouvé la réponse à cette question aujourd’hui, et la réponse est simple, gênante ... j’ai passé beaucoup plus de temps que je ne l’aimerais à admettre à le comprendre;)

Pour empêcher l'affichage du clavier:

<input type="text" name="someInput" />

pour quand vous voulez faire quelque chose comme utiliser un datepicker jQuery UI ...

ajouter un lecture seulement attribuer comme suit:

<input type="text" name="someInput" readonly="readonly" />

Si vous essayez de garder à l’esprit les personnes dont JS est désactivé, vous pouvez toujours laisser cet attribut et l’ajouter à votre code:

$('[name=someInput]').attr('readonly','readonly');

J'espère que cela t'aides.

Voici un jsFiddle démontrant le concept: http://jsfiddle.net/3QLBz/5/

15
BLSully
$("#txt").on("focus", function(){
    $(this).blur();
});

fonctionne avec jquery UI datepicker sur IPad

5
zenon

J'appelle .focus () sur un autre champ de texte et le clavier disparaît. J'utilise le cadre tactile Sencha, le champ de texte auquel je fais référence est un objet Ext.Text.

Je sais que c'est contre-intuitif, mais cela semble fonctionner pour moi

1
Gerry Eng

Version sans jQuery:

function hideKeyboard () {
    document.activeElement.blur();
    Array.prototype.forEach.call(document.querySelectorAll('input, textarea'), function(it) { 
        it.blur(); 
    });
}
0
Pylinux

Nativement, iPad, le clavier de l'iPhone devrait disparaître lorsque l'entrée perd le focus. 

J'ai compris sur des appareils mobiles/tablettes que
Safari ne gère les événements de clic que pour les éléments ayant cursor:pointer propriété .

J'ai finalement ajouté cursor:pointer sur la balise body pour appareils mobiles/tablettes et cela fonctionne comme un charme.

Petit échantillon

body {
    @media screen and (max-width: 1024px) { // IPad breakpoint
      cursor: pointer; // Fix iPhone/iPad click issue
    }
  }
}
0
Disfigure