2009-04-01 9 views
3

J'ai utilisé la propriété CSS '-wap-input-format' pour forcer l'entrée numérique en utilisant "* N". 307Ceci fonctionne sur mon SonyEricsson C702, mais échoue sur Windows Mobile IE, Windows Mobile avec Opera ou SonyEricsson P1i.Entrer une valeur numérique pour le site Web mobile

+0

l'a essayé. abandonné. Comme Tom dit, vous pouvez essayer javascript, qui fonctionnera pour le téléphone haut de gamme, et le css que vous avez déjà essayé fonctionnera pour d'autres, mais beaucoup de téléphones ne coopéreront tout simplement pas et il n'y a rien à faire à ce sujet . La validation côté serveur devra être la réponse. – darasd

+2

La validation côté client est ** seulement ** utile pour plus de commodité (c.-à-d. Pour une rétroaction immédiate). En supposant que les données «vérifiées» par le client seront propres et non-mal est un accident qui attend de se produire. La validation côté serveur est un ** must ** pour garantir que les données sont dans le format dont vous avez besoin. – BryanH

Répondre

0

Ma suggestion est aussi d'ajouter du Javascript. Mobile Opera ainsi que l'iPhone, Minimo (mini-mozilla) et plus peuvent comprendre le Javascript, au moins dans une certaine mesure.

function noNumbers(e) { 
    var keynum; 
    var keychar; 
    var numcheck;  
    if(window.event) // IE 
    { 
     keynum = e.keyCode; 
    } 
    else if(e.which) // Netscape/Firefox/Opera 
    { 
     keynum = e.which; 
    } 

    if((keynum >= 48) && (keynum <= 57)) { 
     return(true); 
    } 

    var good_codes = [8, 14, 15, 37, 38, 39, 40]; 
    for(i = 0; i < good_codes.length; i++) { 
     if(good_codes[i] == keynum) { 
      return(true); 
     } 
    } 

    return(false); 
} 

Espérons que cela aide! :)

metafilter.com

0

Le format que vous parlez est une propriété WCSS (WAP CSS), et en tant que tels, ne sont pas très largement soutenu - en particulier dans les appareils mobiles modernes. Le -wap-input-format ne fonctionne pas très bien dans tous les cas. Par exemple, si les utilisateurs remplissent une entrée numérique avec des nombres décimaux ("2,50") est presque impossible (closest solution: -wap-input-format: "*n"). Cependant, bien que la propriété ne puisse pas être utilisée pour la validation (cela doit toujours être du côté serveur, comme l'a dit Darasd), elle peut aider les utilisateurs en commutant automatiquement l'entrée de l'appareil mobile sur numérique.

La même chose est said to be possible pour les iPhones en ajoutant "zip" ou "téléphone" au nom du champ de saisie (par exemple "myfield_zip"). Oui, je sais, c'est maladroit. J'utiliserais toujours les deux astuces, car cela me donne un avantage financier (et vous pouvez utiliser Javascript en plus d'eux, si vous voulez).

2

Vous n'avez pas besoin de javascript sur Opera ou iphone et probablement pas non plus android. Utilisez simplement le type d'entrée "nombre", à partir de HTML5. Il retombera sur une entrée de texte sur les navigateurs qui ne le supportent pas.

0
<input type='tel' /> 

affichera un pavé numérique sur les navigateurs par défaut Android et iPhone et Chrome pour Android. Il ne fonctionne pas sur Windows Phone 7.5, mais devrait fonctionner sur Windows Phone 8 puisque le navigateur du WP8 est basé sur IE9.

En utilisant

<input type='number' /> 

fera aussi, mais supprimera automatiquement zéros.

Questions connexes