J'ai un site Web mobile et il contient des input
éléments HTML , comme ceci:
<input type="text" name="txtAccessoryCost" size="6" />
J'ai intégré le site dans une WebView
éventuelle consommation Android 2.1, de sorte que ce sera également une application Android.
Est-il possible d'obtenir le clavier avec des chiffres au lieu de celui par défaut avec des lettres lorsque cet input
élément HTML est focalisé?
Ou est-il possible de le définir pour l'ensemble de l'application (peut-être quelque chose dans le fichier Manifest ), si ce n'est pas faisable pour un élément HTML?
inputmode="number"
attribut semble être la bonne réponse à la fin de 2019: developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/… . La réponse la plus votée au moment de ce commentaire suggèretype="number"
, ce qui comporte certains de ses propres écueils;inputmode
semble avoir un impact uniquement sur l'affichage du clavier virtuel, plutôt que sur le comportement / les contraintes de l'entrée elle-même.Réponses:
Les deux présentent le pavé numérique lorsque l'entrée obtient le focus.
<input type="search" />
affiche un clavier normal avec un bouton de recherche supplémentaireTout le reste semble faire apparaître le clavier standard.
la source
input
type
s de la spécification HTML , y comprisnumber
ettel
.type="tel"
est pire pour taper des nombres que le clavier pourtype="number"
.<input type="text" pattern="\d*" />
fait également apparaître le clavier numérique, mais uniquement sur iOS, pas sur Android .NOTE IMPORTANTE
Je publie ceci comme une réponse, pas un commentaire, car c'est une information assez importante et cela attirera plus d'attention dans ce format.
Comme d'autres personnes l'ont souligné, vous pouvez forcer un appareil à vous montrer un clavier numérique avec
type="number"
/type="tel"
, mais je dois souligner que vous devez être extrêmement prudent avec cela.Si quelqu'un s'attend à un nombre commençant par des zéros, par exemple
000222
, il est susceptible d'avoir des problèmes, car certains navigateurs (Chrome de bureau, par exemple) enverront au serveur222
, ce qui n'est pas ce qu'elle veut.A propos de
type="tel"
je ne peux rien dire de similaire mais personnellement je ne l'utilise pas, car son comportement sur différents téléphones peut varier. Je me suis cantonné au simplepattern="[0-9]*"
qui ne fonctionne pas sous Androidla source
type="tel"
. La spécification note qu'elletel
n'applique aucune syntaxe particulière, contrairement ànumber
, qui nécessite que sa valeur soit un nombre à virgule flottante valide .Cela devrait fonctionner. Mais j'ai les mêmes problèmes sur un téléphone Android.
J'ai découvert que si je n'incluais pas le framework jquerymobile, le clavier s'affichait correctement sur les deux types de champs.
Mais je n'ai pas trouvé de solution pour résoudre ce problème, si vous avez vraiment besoin d'utiliser jquerymobile.MISE À JOUR: J'ai découvert que si la balise de formulaire est stockée hors du
Le clavier numérique n'est pas affiché. Cela doit être un bug ...
la source
inputmode
selon WHATWG spec est la méthode par défaut.Pour les appareils iOS, l'ajout
pattern
pourrait également aider.Pour la compatibilité descendante, utilisez
type
également depuis Chrome les utiliser à partir de la version 66.la source
decimal
et je l'ai trouvée ici developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/...Certains navigateurs envoient un zéro au serveur lorsque le type d'entrée est "nombre". J'utilise donc un mélange de jquery et de html pour charger un clavier numérique et m'assurer également que la valeur est envoyée sous forme de texte et non sous forme de nombre:
la source
type="digits"
option pour ne pas avoir à avoir ces hacks. Je veux dire, ce n'est pas comme si un nombre sans tête est si rare (les codes postaux aux États-Unis en sont un exemple évident).input type = number
Lorsque vous souhaitez fournir une entrée numérique, vous pouvez utiliser la valeur d'attribut HTML5 input type = "number".
Voici le clavier qui apparaît sur l'iPhone 4:
Capture d'écran iPhone du numéro de type d'entrée HTML5 Android 2.2 utilise ce clavier pour type = number:
Capture d'écran Android du numéro de type d'entrée HTML5
la source
Ajouter un attribut d'étape à l'entrée numérique
Source: http://blog.pamelafox.org/2012/05/triggering-numeric-keyboards-with-html5.html
la source