2

電話番号をその場で 10 桁の番号にフォーマットする必要があります - すべてのスペース、ダッシュ、ドットなどを削除してください。

例: (123) 321-1234 / 123-321-1234 は 1233211234 になります

逆の例を見たことがありますが、Javascript は初めてなので、どうすればよいかわかりません。

理想的には、数値がテキスト フィールドに入力されている間、または [送信] ボタンが押されたときに書式設定する必要があります。

PS - 私は HTML しか知らないので、 と タグの両方のコードを提供してください。

あなたの助けに感謝します!

4

3 に答える 3

4

正規表現を使用して、テキスト ボックスの値からすべての非数字を削除できます。次に例を示します。

<input type="text" id="text1" />

このJSで:

function addEvent(element, eventName, callback) {
    if (element.addEventListener) {
        element.addEventListener(eventName, callback, false);
    } else if (element.attachEvent) {
        element.attachEvent("on" + eventName, callback);
    }
}

addEvent(window, "load", function () {
    addEvent(document.getElementById("text1"), "change", function () {
        var tel = this.value;
        tel = tel.replace(/\D+/g, "");
        this.value = tel;
    });
});

デモ: http://jsfiddle.net/6vC3x/

テキストボックスの値が(ユーザー入力によって)変更され、テキストボックスがぼやけている(選択されていない)と、置換が発生します。

関数全体addEventは、ブラウザ間で一貫してイベントハンドラーを要素に確実に追加することを願っています。

于 2013-06-27T18:29:27.600 に答える