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];
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();
};
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é :-)
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/
$("#txt").on("focus", function(){
$(this).blur();
});
fonctionne avec jquery UI datepicker sur IPad
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
Version sans jQuery:
function hideKeyboard () {
document.activeElement.blur();
Array.prototype.forEach.call(document.querySelectorAll('input, textarea'), function(it) {
it.blur();
});
}
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
}
}
}