1

モバイル ブラウザからクレジット カードを受け取る注文フォームがあります: <input type="number" id="txtCCNumber" />

それに加えて、フィールドに挿入された整数以外の文字を削除する JavaScript があります。

$('input#txtCCNumber').keyup(function(e)
{
    var ccnum = $(this).val();
    $(this).val(ccnum.replace(/[^\d]/g, ''));
});

しかし、iPhone を使用しているユーザーがクレジット カードを入力しようとすると、iPhone が 3 つの数字ごとにコンマを自動的に追加するように見えることに気付きました (JavaScript のため)。

この JavaScript が機能するように修正する方法を知っている人はいますか?

type="tel" は使いたくありません。この場合、それは解決策ではありません。

4

3 に答える 3

4

個人的には、クレジット カード番号は の適切な使用方法ではないと思いますinput type="number"仕様によると:

値が「number」である type 属性を持つ input 要素は、要素の値を数値を表す文字列に設定するための正確なコントロールを表します。

クレジット カードの「番号」は数字の文字列ですが、特定の数値を識別するものではありません。ユーザーがクレジット カード番号を、一部のブラウザーが入力に添付する上下の矢印を使用して入力しても意味がありません。分野。あなたの最善の策は、単に使用することinput type="text"です。

また、その JavaScript をkeyupイベントに添付すると、クレジット カード番号を区切り記号で入力したい私のような人は、スポット チェックが容易になるため、イライラすることになります。好きなようにカード番号を入力して、後で正規化するだけです。

于 2012-08-02T13:09:52.697 に答える
0

とにかくJSを使用して非整数値を削除しているため、クレジットカード番号フィールドに type="number" を使用している理由がわかりません。ここでは type="text" を使用するのが適切です。

于 2012-08-02T13:09:34.933 に答える
-2

フィドルを作成し、これを iPhone でテストしたところ、正しく動作しました。

http://jsfiddle.net/MH8gj/

于 2012-08-02T13:09:36.993 に答える