HTML Mobile -forcer le clavier souple à cacher
Je suis en train d'élaborer le front-end du site pour un coupon de compagnie, et j'ai une page où l'utilisateur a seulement besoin de saisie de numéro de téléphone et $$ dépensés. Nous sommes venus avec un plaisir sur le clavier à l'écran construite en Javascript, qui est facile à utiliser, et rapide. Cependant, je suis à la recherche d'une solution pour arrêter le clavier souple à partir d'éclater lorsque l'utilisateur se concentre et se saisit du texte et de chiffres dans ces domaines.
Je sais à propos de la "number/numéro de téléphone/e-mail" attributs de type que le HTML5 est venu avec. Cependant, au risque de paraître fou, j'ai vraiment envie d'utiliser mon clavier à l'écran.
Remarque: ce site web est principalement ciblée sur des tablettes.
Grâce.
- C'est de la folie. Si vous utilisez la norme champs de saisie, utilisez le standard de méthodes de saisie.
- Néanmoins, il existe de nombreux avantages d'avoir un clavier à l'écran, en plus d'être un plaisir à utiliser et à construire. Pour un, ils sont très personnalisables à près de cibler votre public, de ses besoins, de la deuxième à la sécurité, à la troisième écran de l'immobilier. 😉
- Ah, je vois que j'ai mal compris "front-end du site" comme "avant la fin de l'app". Vous avez plus de marge de manœuvre dans les attentes de l'utilisateur avec un site web.
Vous devez vous connecter pour publier un commentaire.
Depuis le clavier est la partie de l'OS, plus souvent que pas, vous ne serez pas en mesure de se cacher elle - aussi, sur iOS, en masquant le clavier gouttes à partir de l'élément.
Toutefois, si vous utilisez le
onFocus
attribut de l'entrée, puisblur()
la saisie de texte immédiatement, le clavier se cacher, et laonFocus
événement peut définir une variable pour définir la saisie de texte a été porté dernier.Ensuite modifier votre page de clavier pour seulement modifier la dernière concentré (vérifier à l'aide de la variable) de saisie de texte, plutôt que de simuler une pression sur une touche.
<div style="position:relative; top:0px; left:0px">Text: <input type="text" /><div style="position:absolute; top:0px; left:0px; width:100%; height:100%; opacity:0" onClick="focusbox()"></div></div>
. Le parent (ou absolu) de positionnement d'un div parent provoque une position absolue enfant par rapport à son parent.Scott S réponse a parfaitement fonctionné.
J'ai été codage basé sur le web clavier de téléphone mobile, et chaque fois que l'utilisateur appuie sur une touche du clavier (composé de td span éléments dans un tableau), les softkeyboard pop up. Je tenais également à l'utilisateur de ne pas être en mesure de puiser dans la zone de saisie du numéro composé. En fait, cela a résolu ces deux problèmes en 1 coup. Les suivants ont été utilisés:
Pour plus de lecteurs/chercheurs:
Comme René Pot points sur cette rubrique,
Avec cette méthode, vous pouvez éviter d'éclater le "soft" du Clavier et de la lancer sur les événements /remplir l'entrée par un clavier à l'écran.
Cette solution fonctionne aussi très bien avec date-heure-cueilleurs qui sont déjà généralement mise en œuvre de contrôles.
Ces réponses ne sont pas mauvaises, mais elles sont limitées, car elles ne sont pas réellement vous permettre de saisir des données. Nous avons eu un problème similaire où nous avons été à l'aide de lecteurs de code à barres pour entrer des données dans un champ, mais nous avons voulu supprimer le clavier.
C'est ce que j'ai mis ensemble, cela fonctionne assez bien:
https://codepen.io/bobjase/pen/QrQQvd/
Lorsque vous cliquez dans la
<input>
boîte, il simule un curseur dans cette zone, mais met vraiment l'accent sur un vide<select>
boîte. Sélectionnez les boîtes naturellement les touches utilisées pour le soutien de sauter à un élément dans la liste, donc c'était seulement une question de changement d'itinéraire de la touche à l'entrée d'origine et la compensation de la simulation curseur.Cela ne fonctionne pas pour revenir en arrière, supprimer, etc... mais nous n'avons pas besoin de ceux-ci. Vous pourriez probablement utiliser jQuery déclencheur pour envoyer un événement clavier directement à une autre zone de saisie de quelque part, mais nous n'avons pas besoin de s'embêter avec que donc je ne l'ai pas fait.
exemple comment j'ai fait , Après avoir rempli un Maximum de longueur, il sera flou de mon
Domaine (et le Clavier disparaît ) , si vous avez plus d'un champ , vous pouvez simplement ajouter la ligne que j'ai ajouté '//'
Je ne pouvais pas utiliser certaines des suggestions fournies.
Dans mon cas, j'avais Google Chrome utilisé pour afficher un Oracle APEX de l'Application.
Il y avait des champs de saisie qui vous a permis de commencer la saisie d'une valeur et d'une liste de valeurs commencent à être affiché et la réduction que vous êtes devenu plus spécifique dans votre frappe. Une fois que vous avez sélectionné l'élément de la liste des options disponibles, l'accent doit toujours être sur le champ de saisie.
J'ai trouvé que ma solution était facile à faire avec un événement personnalisé qui déclenche un message d'erreur personnalisé comme suit: