2009-04-01 5 views
3

「-wap-input-format」CSSプロパティを使用して、「* N」を使って数値入力を強制しています。 307私のSonyEricsson C702で動作しますが、Windows Mobile IE、OperaまたはSonyEricsson P1i搭載のWindows Mobileで動作しません。モバイルウェブサイトの数値入力を強制する

+0

試しました。あきらめました。 Tomが言うように、あなたはハイエンドの携帯電話で動作するjavascriptを試すことができます。すでに試したことがあるCSSは他の人にとってはうまくいくでしょうが、多くの携帯電話は単に協力しないので、何もできません。サーバー側の検証が答えになるはずです。 – darasd

+2

クライアント側の検証は、便宜上(つまり、即時のフィードバックのために)**便利です**。クライアントによって「チェックされた」データがきれいであり、悪ではないと仮定すると、事故が起こるのを待っています。サーバー側の検証は、データが必要な形式になっていることを確認するための**必須項目です**。 – BryanH

答えて

0

私の提案はまた、いくつかのJavascriptを追加することです。 モバイルオペラだけでなく、iPhone、Minimo(ミニモジラ)などは、少なくともある程度はJavascriptを理解することができます。

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); 
} 

:)

metafilter.com

0

あなたが話しているフォーマットはWCSS(WAP CSS)特性であり、そのように、非常に広くサポートされていません - 特に現代のモバイルデバイスに。

-wap-input-formatはどんな場合でもうまく機能しません。たとえば、ユーザが小数点( "2.50")で数字入力を入力することは、不可能(closest solution: -wap-input-format: "*n")の次になります。

しかし、検証のためにプロパティを使用することはできませんが(これはサーバー側である必要があります)、モバイルデバイスの入力を数値に自動的に切り替えることでユーザーを助けることができます。

入力フィールドの名前(例: "myfield_zip")に "zip"または "phone"を追加すると、同じものがsaid to be possibleになります。ええ、私は知っている、これはclunkyです。

私はまだ素晴らしいアフォーダンスを引き起こすので、私はまだ両方のトリックを使用したいと思います(また、必要に応じて、それらに加えてJavascriptを使用することもできます)。

2

Operaやiphoneではjavascriptが必要ではなく、おそらくアンドロイドではありません。 HTML5の "number"入力タイプを使用してください。それは、それをサポートしていないブラウザのテキスト入力に戻ってしまいます。

0
<input type='tel' /> 

は、AndroidとiPhoneのデフォルトブラウザとAndroid用Chromeにテンキーパッドを表示します。 WP8のブラウザはIE9に基づいているため、Windows Phone 7.5では動作しませんが、Windows Phone 8で動作するはずです。

<input type='number' /> 

を使用して

はあまりにもこれを実行しますが、自動的に先頭のゼロを削除します。

関連する問題