正規表現を使用して、テキスト ボックスの値からすべての非数字を削除できます。次に例を示します。
<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
は、ブラウザ間で一貫してイベントハンドラーを要素に確実に追加することを願っています。