質問
私は「-wap-input-format」CSSプロパティを使用して、「*N」を使用した数値入力を強制しています。307これは SonyEricsson C702 では機能しますが、Windows Mobile IE、Opera を搭載した Windows Mobile、または SonyEricsson P1i では失敗します。
解決
私の提案もあります。モバイルオペラなど、iPhone、ミニモ(ミニmozilla)により理解できる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);
}
武器agiは、dexで下がらないboxerぐ! : )
他のヒント
あなたは、どちらかのオペラやiPhone上でJavaScriptを必要とし、おそらくないアンドロイドはありません。ただ、HTML5から、「番号」の入力タイプを使用します。それはそれをサポートしていないブラウザ上のテキスト入力にフォールバックします。
あなたが話しているフォーマットは、 WCSS (WAP CSS) プロパティのため、特に最近のモバイル デバイスでは、あまり広くサポートされていません。
の -wap入力フォーマット いずれにしてもあまりうまく機能しません。たとえば、ユーザーに小数点以下の数値入力 (「2.50」) を入力させることは、ほぼ不可能です (最も近い解決策:-wap入力形式:「*ん」).
ただし、このプロパティは検証に依存することはできませんが (Darasd 氏が述べたように、いずれにしてもサーバー側で行う必要があります)、モバイル デバイスの入力を自動的に数値に切り替えることでユーザーを支援できます。
同じです 可能だと言われた iPhone の場合は、入力フィールドの名前に「zip」または「phone」を追加します (例:"myfield_zip")。はい、わかります、これは不格好です。
優れたアフォーダンスをトリガーするため、私は両方のトリックを引き続き使用します (必要に応じて、それらに加えて JavaScript を使用することもできます)。
<input type='tel' />
AndroidとiPhoneのデフォルトブラウザとChrome for Androidの上の数値キーパッドが表示されます。これは、Windowsの携帯電話7.5上では動作しませんが、Windowsの携帯電話8にWP8のブラウザはIE9に基づいているはずなので。
使用
<input type='number' />
あまりにもこれを実行しますが、自動的に先頭のゼロを削除します。